| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 20 | | adverbTagCount | 4 | | adverbTags | | 0 | "His accent wrapped around [around]" | | 1 | "she said finally [finally]" | | 2 | "he said softly [softly]" | | 3 | "her hand tightened fractionally [fractionally]" |
| | dialogueSentences | 102 | | tagDensity | 0.196 | | leniency | 0.392 | | rawRatio | 0.2 | | effectiveRatio | 0.078 | |
| 71.05% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1727 | | totalAiIsmAdverbs | 10 | | found | | | highlights | | 0 | "perfectly" | | 1 | "suddenly" | | 2 | "really" | | 3 | "very" | | 4 | "gently" | | 5 | "softly" |
| |
| 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) | |
| 56.57% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1727 | | totalAiIsms | 15 | | found | | | highlights | | 0 | "measured" | | 1 | "constructed" | | 2 | "pulse" | | 3 | "weight" | | 4 | "unreadable" | | 5 | "tension" | | 6 | "perfect" | | 7 | "silence" | | 8 | "warmth" | | 9 | "complex" | | 10 | "flickered" | | 11 | "charged" | | 12 | "unspoken" | | 13 | "charm" |
| |
| 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 | 1 | | narrationSentences | 87 | | matches | | |
| 93.60% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 1 | | narrationSentences | 87 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 169 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 48 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1700 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 21 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 31 | | wordCount | 965 | | uniqueNames | 14 | | maxNameDensity | 0.93 | | worstName | "Aurora" | | maxWindowNameDensity | 2 | | worstWindowName | "Aurora" | | discoveredNames | | Aurora | 9 | | Mayfair | 1 | | East | 1 | | London | 1 | | Lucien | 6 | | Moreau | 3 | | Golden | 1 | | Empress | 1 | | Let | 1 | | Seven | 1 | | Seals | 1 | | Camden | 1 | | Eva | 1 | | Six | 3 |
| | persons | | 0 | "Aurora" | | 1 | "Lucien" | | 2 | "Moreau" | | 3 | "Eva" |
| | places | | 0 | "East" | | 1 | "London" | | 2 | "Golden" | | 3 | "Camden" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 71 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.588 | | wordCount | 1700 | | matches | | 0 | "not the practiced charm he wore like armor, but something real" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 169 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 101 | | mean | 16.83 | | std | 16.64 | | cv | 0.989 | | sampleLengths | | 0 | 43 | | 1 | 39 | | 2 | 20 | | 3 | 1 | | 4 | 37 | | 5 | 53 | | 6 | 3 | | 7 | 29 | | 8 | 31 | | 9 | 2 | | 10 | 6 | | 11 | 18 | | 12 | 2 | | 13 | 39 | | 14 | 36 | | 15 | 2 | | 16 | 66 | | 17 | 5 | | 18 | 26 | | 19 | 37 | | 20 | 44 | | 21 | 16 | | 22 | 3 | | 23 | 32 | | 24 | 42 | | 25 | 24 | | 26 | 2 | | 27 | 2 | | 28 | 43 | | 29 | 4 | | 30 | 4 | | 31 | 7 | | 32 | 25 | | 33 | 18 | | 34 | 3 | | 35 | 10 | | 36 | 13 | | 37 | 5 | | 38 | 2 | | 39 | 32 | | 40 | 7 | | 41 | 61 | | 42 | 1 | | 43 | 48 | | 44 | 9 | | 45 | 29 | | 46 | 3 | | 47 | 36 | | 48 | 6 | | 49 | 10 |
| |
| 97.20% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 87 | | matches | | 0 | "was stressed" | | 1 | "was overrated" |
| |
| 84.39% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 173 | | matches | | 0 | "wasn't staying" | | 1 | "was protecting" | | 2 | "was cooking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 18 | | semicolonCount | 0 | | flaggedSentences | 14 | | totalSentences | 169 | | ratio | 0.083 | | matches | | 0 | "Only one person knocked like that—like punctuation at the end of a perfectly constructed sentence." | | 1 | "Aurora undid the locks—all three of them—and pulled the door open just enough to block the entrance with her body." | | 2 | "\"You said many things that night.\" His amber eye—the human one—held something that might have been regret." | | 3 | "But something in his voice—a rawness she'd rarely heard—made her step back." | | 4 | "She remembered the last job they'd worked—the one that went sideways." | | 5 | "It wasn't in his nature—demon or human." | | 6 | "\"It's not the politics or the constant testing of loyalties. It's not even the way both worlds look at you with suspicion.\" He set his cane against the wall and moved closer, close enough that she could smell his cologne—something expensive and smoky." | | 7 | "Aurora studied his profile—the sharp cheekbones, the slight tension around his mouth." | | 8 | "Something flickered across his face—surprise, perhaps, or recognition." | | 9 | "Aurora remembered other moments like this—the almost-kiss after the Seven Seals incident, the night they'd hidden from blood witches in a Camden crypt and she'd fallen asleep against his shoulder, the way he'd looked at her when she'd solved the cipher, like she'd hung the moon." | | 10 | "His thumb brushed over the crescent scar on her wrist—the old wound from a childhood accident that had nothing to do with his world and everything to do with who she was." | | 11 | "Aurora looked at their joined hands—his pale and elegant, hers still stained with curry sauce under the nails." | | 12 | "His smile was slow and genuine—not the practiced charm he wore like armor, but something real." | | 13 | "But he still didn't move to leave, and she didn't pull her hand away, and the rain kept falling, and maybe—just maybe—that was enough for now." |
| |
| 95.07% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 986 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 45 | | adverbRatio | 0.04563894523326572 | | lyAdverbCount | 14 | | lyAdverbRatio | 0.014198782961460446 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 169 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 169 | | mean | 10.06 | | std | 8.64 | | cv | 0.859 | | sampleLengths | | 0 | 14 | | 1 | 6 | | 2 | 8 | | 3 | 15 | | 4 | 14 | | 5 | 11 | | 6 | 1 | | 7 | 7 | | 8 | 6 | | 9 | 20 | | 10 | 1 | | 11 | 13 | | 12 | 2 | | 13 | 19 | | 14 | 3 | | 15 | 14 | | 16 | 21 | | 17 | 14 | | 18 | 4 | | 19 | 3 | | 20 | 17 | | 21 | 6 | | 22 | 6 | | 23 | 10 | | 24 | 16 | | 25 | 5 | | 26 | 2 | | 27 | 6 | | 28 | 18 | | 29 | 2 | | 30 | 28 | | 31 | 7 | | 32 | 4 | | 33 | 6 | | 34 | 18 | | 35 | 12 | | 36 | 2 | | 37 | 36 | | 38 | 30 | | 39 | 5 | | 40 | 12 | | 41 | 6 | | 42 | 8 | | 43 | 25 | | 44 | 12 | | 45 | 8 | | 46 | 36 | | 47 | 10 | | 48 | 6 | | 49 | 3 |
| |
| 69.43% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.4556213017751479 | | totalSentences | 169 | | uniqueOpeners | 77 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 6 | | totalSentences | 84 | | matches | | 0 | "Only one person knocked like" | | 1 | "Of course he'd found her" | | 2 | "Somewhere below, the curry house's" | | 3 | "Such different worlds they came" | | 4 | "Maybe normal was overrated." | | 5 | "Somewhere in the building, someone" |
| | ratio | 0.071 | |
| 53.33% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 35 | | totalSentences | 84 | | matches | | 0 | "She froze, hands still damp," | | 1 | "She dried her hands on" | | 2 | "His accent wrapped around the" | | 3 | "He wore his usual charcoal" | | 4 | "His amber eye—the human one—held" | | 5 | "He paused, and for the" | | 6 | "She wanted to slam the" | | 7 | "He entered her flat with" | | 8 | "His gaze swept the cramped" | | 9 | "She closed the door but" | | 10 | "He turned to face her," | | 11 | "He tested the word like" | | 12 | "She sank onto her secondhand" | | 13 | "He moved closer, cane clicking" | | 14 | "She remembered the last job" | | 15 | "He stopped, jaw tightening" | | 16 | "It wasn't in his nature—demon" | | 17 | "His lips quirked, almost a" | | 18 | "He was quiet for a" | | 19 | "He set his cane against" |
| | ratio | 0.417 | |
| 96.90% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 61 | | totalSentences | 84 | | matches | | 0 | "The knock came just as" | | 1 | "She froze, hands still damp," | | 2 | "She dried her hands on" | | 3 | "Information was his currency, after" | | 4 | "Aurora undid the locks—all three" | | 5 | "Lucien's heterochromatic gaze swept over" | | 6 | "His accent wrapped around the" | | 7 | "He wore his usual charcoal" | | 8 | "The ivory handle of his" | | 9 | "His amber eye—the human one—held" | | 10 | "The black demon eye remained" | | 11 | "Aurora's fingers tightened on the" | | 12 | "The crescent scar on her" | | 13 | "He paused, and for the" | | 14 | "Lucien Moreau, always in control," | | 15 | "She wanted to slam the" | | 16 | "Every self-protective instinct screamed at" | | 17 | "He entered her flat with" | | 18 | "His gaze swept the cramped" | | 19 | "She closed the door but" |
| | ratio | 0.726 | |
| 59.52% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 84 | | matches | | 0 | "Now, sitting close enough to" |
| | ratio | 0.012 | |
| 95.24% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 30 | | technicalSentenceCount | 2 | | matches | | 0 | "He entered her flat with the same fluid grace that had first caught her attention two years ago, when she'd stumbled into a demon bar by accident and he'd kept …" | | 1 | "His thumb brushed over the crescent scar on her wrist—the old wound from a childhood accident that had nothing to do with his world and everything to do with wh…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 20 | | uselessAdditionCount | 1 | | matches | | 0 | "He stopped, jaw tightening" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 102 | | tagDensity | 0.029 | | leniency | 0.059 | | rawRatio | 0.333 | | effectiveRatio | 0.02 | |