| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 25 | | adverbTagCount | 2 | | adverbTags | | 0 | "She stepped back [back]" | | 1 | "She looked away [away]" |
| | dialogueSentences | 52 | | tagDensity | 0.481 | | leniency | 0.962 | | rawRatio | 0.08 | | effectiveRatio | 0.077 | |
| 93.95% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1653 | | 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) | |
| 69.75% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1653 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "tension" | | 1 | "flicker" | | 2 | "reminder" | | 3 | "weight" | | 4 | "flickered" | | 5 | "perfect" | | 6 | "sense of" | | 7 | "silence" | | 8 | "warmth" | | 9 | "structure" |
| |
| 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 | 102 | | matches | (empty) | |
| 86.83% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 2 | | narrationSentences | 102 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 129 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 61 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1639 | | 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 | 28 | | wordCount | 1178 | | uniqueNames | 12 | | maxNameDensity | 0.59 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Lucien" | | discoveredNames | | London | 2 | | Moreau | 3 | | Kept | 1 | | Brick | 1 | | Lane | 1 | | Lucien | 6 | | Good | 1 | | Rory | 7 | | Actually | 1 | | Golden | 1 | | Empress | 1 | | Ptolemy | 3 |
| | persons | | 0 | "Moreau" | | 1 | "Lucien" | | 2 | "Rory" | | 3 | "Actually" | | 4 | "Ptolemy" |
| | places | | 0 | "London" | | 1 | "Brick" | | 2 | "Lane" | | 3 | "Golden" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 63 | | glossingSentenceCount | 1 | | matches | | 0 | "felt like a dollhouse with an unsuitabl" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1639 | | matches | (empty) | |
| 89.15% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 3 | | totalSentences | 129 | | matches | | 0 | "chose that moment" | | 1 | "said that word" | | 2 | "say that she’d" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 57 | | mean | 28.75 | | std | 21.85 | | cv | 0.76 | | sampleLengths | | 0 | 53 | | 1 | 11 | | 2 | 68 | | 3 | 1 | | 4 | 22 | | 5 | 25 | | 6 | 51 | | 7 | 47 | | 8 | 46 | | 9 | 30 | | 10 | 4 | | 11 | 1 | | 12 | 7 | | 13 | 69 | | 14 | 3 | | 15 | 44 | | 16 | 31 | | 17 | 6 | | 18 | 67 | | 19 | 6 | | 20 | 26 | | 21 | 73 | | 22 | 17 | | 23 | 18 | | 24 | 20 | | 25 | 56 | | 26 | 7 | | 27 | 24 | | 28 | 75 | | 29 | 5 | | 30 | 32 | | 31 | 31 | | 32 | 5 | | 33 | 19 | | 34 | 56 | | 35 | 50 | | 36 | 3 | | 37 | 40 | | 38 | 5 | | 39 | 39 | | 40 | 55 | | 41 | 14 | | 42 | 18 | | 43 | 4 | | 44 | 45 | | 45 | 41 | | 46 | 39 | | 47 | 6 | | 48 | 65 | | 49 | 31 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 102 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 208 | | matches | | 0 | "was hiding" | | 1 | "wasn’t staying" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 129 | | ratio | 0.085 | | matches | | 0 | "Rory had engaged all three without thinking—ingrained habit from the curry house downstairs, from the late shifts, from the way London taught you to lock out the world one bolt at a time." | | 1 | "The weak bulb above the door caught the platinum of his hair, the sharp line of his jaw, and those eyes—one amber, one black—that had haunted the edges of her sleep for four months." | | 2 | "A flicker crossed his features—something that might have been pain, if Lucien Moreau were the sort of man who let pain show." | | 3 | "“You wouldn’t be here at all if you had any other option.” She crossed her arms, felt the crescent-shaped scar on her left wrist press against her sleeve—a small comfort, a reminder of a time before London, before demons, before a half-breed fixer with a beautiful smile had pulled her into a world she still didn’t fully understand." | | 4 | "The motion was subtle, but Rory noticed—the slight tremor in his hand, the way his jaw tightened." | | 5 | "She’d expected many things—a threat, a warning, a piece of information he wanted to trade." | | 6 | "Because in the weeks they’d worked together—before she’d found out the full extent of his demonic heritage, before the argument that had ended with her walking out of his bar and him not following—he’d said something similar." | | 7 | "She stared at him—at the impeccably dressed half-demon who had never said that word in her presence, not once, not even when she’d thrown his own expensive whiskey in his face and told him she never wanted to see him again." | | 8 | "He took it in with a single sweep of those mismatched eyes—the cat tower in the corner, the kettle on the counter, the pile of takeaway menus from the Golden Empress with her own handwriting scrawled across them." | | 9 | "He turned to face her, and for a moment the mask slipped—the polished fixer, the information broker, the man who never showed his cards." | | 10 | "She remembered the moment she’d found out—the cold shock, the sense of betrayal." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1198 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 43 | | adverbRatio | 0.03589315525876461 | | lyAdverbCount | 14 | | lyAdverbRatio | 0.011686143572621035 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 129 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 129 | | mean | 12.71 | | std | 11.52 | | cv | 0.906 | | sampleLengths | | 0 | 20 | | 1 | 33 | | 2 | 11 | | 3 | 34 | | 4 | 34 | | 5 | 1 | | 6 | 10 | | 7 | 12 | | 8 | 6 | | 9 | 13 | | 10 | 6 | | 11 | 15 | | 12 | 36 | | 13 | 18 | | 14 | 4 | | 15 | 25 | | 16 | 4 | | 17 | 42 | | 18 | 22 | | 19 | 2 | | 20 | 6 | | 21 | 4 | | 22 | 1 | | 23 | 7 | | 24 | 58 | | 25 | 11 | | 26 | 3 | | 27 | 39 | | 28 | 1 | | 29 | 4 | | 30 | 7 | | 31 | 17 | | 32 | 4 | | 33 | 3 | | 34 | 6 | | 35 | 10 | | 36 | 2 | | 37 | 15 | | 38 | 5 | | 39 | 7 | | 40 | 15 | | 41 | 13 | | 42 | 4 | | 43 | 2 | | 44 | 14 | | 45 | 12 | | 46 | 7 | | 47 | 37 | | 48 | 23 | | 49 | 6 |
| |
| 57.36% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.3953488372093023 | | totalSentences | 129 | | uniqueOpeners | 51 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 84 | | matches | | 0 | "Actually cracked, like plaster under" | | 1 | "Anywhere but at the man" | | 2 | "Instead she said," |
| | ratio | 0.036 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 48 | | totalSentences | 84 | | matches | | 0 | "She swung the door open" | | 1 | "His voice did something to" | | 2 | "She kept her voice flat" | | 3 | "He said it simply, as" | | 4 | "She didn’t take her eyes" | | 5 | "She knew that better than" | | 6 | "She crossed her arms, felt" | | 7 | "Her voice was sharper than" | | 8 | "He shifted his weight onto" | | 9 | "He was hiding something." | | 10 | "He always was." | | 11 | "She’d expected many things—a threat," | | 12 | "She had not expected this." | | 13 | "He offered it, at prices" | | 14 | "He did not come to" | | 15 | "His gaze flickered past her" | | 16 | "You see the world in" | | 17 | "It’s why I keep you" | | 18 | "She’d believed him." | | 19 | "She stepped back, reached for" |
| | ratio | 0.571 | |
| 31.43% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 72 | | totalSentences | 84 | | matches | | 0 | "The third deadbolt slid back" | | 1 | "Rory had engaged all three" | | 2 | "She swung the door open" | | 3 | "Lucien Moreau stood on her" | | 4 | "The weak bulb above the" | | 5 | "His voice did something to" | | 6 | "Something she’d spent a hundred" | | 7 | "She kept her voice flat" | | 8 | "He said it simply, as" | | 9 | "Ptolemy chose that moment to" | | 10 | "Rory didn’t look down." | | 11 | "She didn’t take her eyes" | | 12 | "A flicker crossed his features—something" | | 13 | "She knew that better than" | | 14 | "She crossed her arms, felt" | | 15 | "Her voice was sharper than" | | 16 | "He shifted his weight onto" | | 17 | "The motion was subtle, but" | | 18 | "He was hiding something." | | 19 | "He always was." |
| | ratio | 0.857 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 84 | | matches | | 0 | "As if it explained the" | | 1 | "Because in the weeks they’d" |
| | ratio | 0.024 | |
| 46.33% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 37 | | technicalSentenceCount | 5 | | matches | | 0 | "The third deadbolt slid back with a metallic click that seemed too loud in the sudden quiet of the stairwell." | | 1 | "As if it explained the way he stood there, immaculate and out of place on the grimy stairwell of a Brick Lane walk-up, the scent of cardamom and cumin drifting …" | | 2 | "Because in the weeks they’d worked together—before she’d found out the full extent of his demonic heritage, before the argument that had ended with her walking …" | | 3 | "She stared at him—at the impeccably dressed half-demon who had never said that word in her presence, not once, not even when she’d thrown his own expensive whis…" | | 4 | "Anywhere but at the man who had walked back into her life and immediately started dismantling the walls she’d carefully rebuilt." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 25 | | uselessAdditionCount | 1 | | matches | | 0 | "He said, as if that were an answer" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 12 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 52 | | tagDensity | 0.231 | | leniency | 0.462 | | rawRatio | 0.083 | | effectiveRatio | 0.038 | |