| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 39 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 86.81% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1895 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "lightly" | | 1 | "loosely" | | 2 | "really" | | 3 | "slightly" | | 4 | "carefully" |
| |
| 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) | |
| 63.06% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1895 | | totalAiIsms | 14 | | found | | | highlights | | 0 | "velvet" | | 1 | "flicker" | | 2 | "pulse" | | 3 | "flicked" | | 4 | "charged" | | 5 | "electric" | | 6 | "could feel" | | 7 | "silence" | | 8 | "otherworldly" | | 9 | "warmth" | | 10 | "intensity" | | 11 | "vibrated" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 90 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 90 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 112 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 72 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 20 | | totalWords | 1882 | | ratio | 0.011 | | matches | | 0 | "I can’t keep waiting for you to choose me over the shadows you were born into. Don’t look for me." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 19 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 25 | | wordCount | 1258 | | uniqueNames | 15 | | maxNameDensity | 0.48 | | worstName | "Aurora" | | maxWindowNameDensity | 1 | | worstWindowName | "Aurora" | | discoveredNames | | Aurora | 6 | | Moreau | 1 | | French | 1 | | Ptolemy | 2 | | Eva | 1 | | Cardiff | 1 | | University | 1 | | Quiet | 1 | | London | 1 | | Silas | 1 | | River | 1 | | Thames | 1 | | Lucien | 5 | | Brick | 1 | | Lane | 1 |
| | persons | | 0 | "Aurora" | | 1 | "Moreau" | | 2 | "Ptolemy" | | 3 | "Eva" | | 4 | "Quiet" | | 5 | "Silas" | | 6 | "Lucien" |
| | places | | 0 | "Cardiff" | | 1 | "London" | | 2 | "River" | | 3 | "Thames" | | 4 | "Brick" | | 5 | "Lane" |
| | globalScore | 1 | | windowScore | 1 | |
| 25.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 60 | | glossingSentenceCount | 3 | | matches | | 0 | "felt like admitting defeat" | | 1 | "seemed smaller with him inside it" | | 2 | "as if relearning it" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1882 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 112 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 43 | | mean | 43.77 | | std | 29.52 | | cv | 0.675 | | sampleLengths | | 0 | 20 | | 1 | 90 | | 2 | 45 | | 3 | 10 | | 4 | 33 | | 5 | 70 | | 6 | 6 | | 7 | 47 | | 8 | 3 | | 9 | 13 | | 10 | 44 | | 11 | 55 | | 12 | 80 | | 13 | 29 | | 14 | 34 | | 15 | 52 | | 16 | 4 | | 17 | 35 | | 18 | 95 | | 19 | 64 | | 20 | 55 | | 21 | 45 | | 22 | 23 | | 23 | 45 | | 24 | 11 | | 25 | 126 | | 26 | 8 | | 27 | 17 | | 28 | 75 | | 29 | 44 | | 30 | 72 | | 31 | 40 | | 32 | 18 | | 33 | 15 | | 34 | 90 | | 35 | 48 | | 36 | 64 | | 37 | 6 | | 38 | 107 | | 39 | 33 | | 40 | 33 | | 41 | 52 | | 42 | 26 |
| |
| 97.47% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 90 | | matches | | 0 | "was slicked" | | 1 | "been carved" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 213 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 5 | | flaggedSentences | 13 | | totalSentences | 112 | | ratio | 0.116 | | matches | | 0 | "The amber eye held steady on her face; the black one seemed to drink the low light from the hallway." | | 1 | "The city noise filtered up the stairwell—distant traffic, a shout from the street, the faint clatter of pans—but the space between them felt sealed off, dense with everything that had once lived there and everything that had died." | | 2 | "Behind her the flat was its usual chaos of stacked books and unfurled scrolls; Ptolemy’s tabby bulk occupied the single armchair like a furry little tyrant." | | 3 | "He closed the door himself—three deadbolts sliding home under his gloved fingers as if he had practiced the sequence—and the click of the last lock felt final." | | 4 | "The kettle was already half-full; she flicked the switch and stared at the spiral of the element until it began to glow orange." | | 5 | "The memory hit with vicious clarity—London rain, the amber and black of his eyes across a desk, the first time their fingers had brushed when she slid the envelope across." | | 6 | "She could feel the history press in—nights spent throwing knives of wit at each other over maps of ley lines and names that should never be spoken twice, the heat of his mouth the first time he had broken and kissed her in the shadowed back room of Silas’s, the way his hand had fitted against the small of her back like it had been carved for that exact purpose." | | 7 | "Reached—slow enough that she could have stepped back, could have put the kitchen counter between them again." | | 8 | "“I was afraid,” he said, and the admission cost him; she watched it land." | | 9 | "The flat, the books, the faint yowl of the curry-house extractor fan below—all of it receded until there was only the press of his fingertips against her pulse and the impossible nearness of his mouth." | | 10 | "Lucien made a low sound that vibrated against her lips; his free hand slid into the dark fall of her hair, angling her head so he could deepen it." | | 11 | "Lucien’s smile was quiet, almost tentative—rarer and more dangerous than any blade he carried." | | 12 | "Inside the book-choked flat above the curry house, two people who had once left everything unsaid began—carefully, fiercely—to say it anyway." |
| |
| 86.20% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1273 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 71 | | adverbRatio | 0.05577376276512176 | | lyAdverbCount | 13 | | lyAdverbRatio | 0.01021209740769835 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 112 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 112 | | mean | 16.8 | | std | 14.65 | | cv | 0.872 | | sampleLengths | | 0 | 20 | | 1 | 56 | | 2 | 14 | | 3 | 20 | | 4 | 7 | | 5 | 38 | | 6 | 3 | | 7 | 7 | | 8 | 13 | | 9 | 8 | | 10 | 12 | | 11 | 5 | | 12 | 27 | | 13 | 26 | | 14 | 12 | | 15 | 6 | | 16 | 30 | | 17 | 17 | | 18 | 3 | | 19 | 8 | | 20 | 5 | | 21 | 9 | | 22 | 10 | | 23 | 2 | | 24 | 2 | | 25 | 21 | | 26 | 13 | | 27 | 15 | | 28 | 27 | | 29 | 8 | | 30 | 23 | | 31 | 6 | | 32 | 2 | | 33 | 41 | | 34 | 4 | | 35 | 1 | | 36 | 1 | | 37 | 23 | | 38 | 12 | | 39 | 22 | | 40 | 14 | | 41 | 38 | | 42 | 4 | | 43 | 9 | | 44 | 19 | | 45 | 7 | | 46 | 4 | | 47 | 15 | | 48 | 23 | | 49 | 53 |
| |
| 66.07% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.42857142857142855 | | totalSentences | 112 | | uniqueOpeners | 48 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 6 | | totalSentences | 78 | | matches | | 0 | "Just the one word, flat" | | 1 | "Then he simply looked at" | | 2 | "Of course he had." | | 3 | "Of course he had." | | 4 | "Just the truth, bare as" | | 5 | "Instead she stayed exactly where" |
| | ratio | 0.077 | |
| 86.67% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 26 | | totalSentences | 78 | | matches | | 0 | "His platinum blond hair was" | | 1 | "His voice was quieter than" | | 2 | "She did not step aside." | | 3 | "He tilted his head a" | | 4 | "She could still do both," | | 5 | "She stepped back because slamming" | | 6 | "He closed the door himself—three" | | 7 | "He set the cane against" | | 8 | "His heterochromatic gaze did not" | | 9 | "She pushed past him toward" | | 10 | "He had followed." | | 11 | "She heard the soft creak" | | 12 | "His voice dropped" | | 13 | "She could feel the history" | | 14 | "He had looked anyway." | | 15 | "He reached out then." | | 16 | "His fingers brushed the inside" | | 17 | "he said, and the admission" | | 18 | "she said, because it needed" | | 19 | "She should have made him" |
| | ratio | 0.333 | |
| 81.79% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 59 | | totalSentences | 78 | | matches | | 0 | "The third deadbolt scraped free" | | 1 | "Lucien Moreau stood on the" | | 2 | "His platinum blond hair was" | | 3 | "The amber eye held steady" | | 4 | "The city noise filtered up" | | 5 | "His voice was quieter than" | | 6 | "The French accent still curled" | | 7 | "She did not step aside." | | 8 | "The smell of Eva’s cold" | | 9 | "A flicker of something almost" | | 10 | "He tilted his head a" | | 11 | "The words landed harder than" | | 12 | "Aurora’s pulse kicked once, sharp," | | 13 | "She could still do both," | | 14 | "She stepped back because slamming" | | 15 | "Lucien crossed the threshold with" | | 16 | "He closed the door himself—three" | | 17 | "The flat seemed smaller with" | | 18 | "He set the cane against" | | 19 | "Aurora crossed her arms, felt" |
| | ratio | 0.756 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 78 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 38 | | technicalSentenceCount | 9 | | matches | | 0 | "Lucien Moreau stood on the narrow landing as if he had always belonged there, one gloved hand resting lightly on the ivory head of his cane, the other loosely h…" | | 1 | "The city noise filtered up the stairwell—distant traffic, a shout from the street, the faint clatter of pans—but the space between them felt sealed off, dense w…" | | 2 | "He closed the door himself—three deadbolts sliding home under his gloved fingers as if he had practiced the sequence—and the click of the last lock felt final." | | 3 | "Past the sharp black bob that swung against her jaw, past the jeans and the faded Cardiff University hoodie she had thrown on hours ago, straight into the brigh…" | | 4 | "The argument that had started as logistics and ended as something far more personal." | | 5 | "Instead she stayed exactly where she was, close enough to feel the faint, otherworldly warmth that always lived under Lucien’s skin, close enough to see the fra…" | | 6 | "It was months of held breath released at once, mouths meeting with the kind of starved precision that came from remembering exactly how the other person tasted." | | 7 | "Lucien made a low sound that vibrated against her lips; his free hand slid into the dark fall of her hair, angling her head so he could deepen it." | | 8 | "Inside the book-choked flat above the curry house, two people who had once left everything unsaid began—carefully, fiercely—to say it anyway." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 39 | | tagDensity | 0.205 | | leniency | 0.41 | | rawRatio | 0.125 | | effectiveRatio | 0.051 | |