| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 21 | | adverbTagCount | 2 | | adverbTags | | 0 | "he said softly [softly]" | | 1 | "they broke apart [apart]" |
| | dialogueSentences | 57 | | tagDensity | 0.368 | | leniency | 0.737 | | rawRatio | 0.095 | | effectiveRatio | 0.07 | |
| 89.40% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1415 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "lightly" | | 1 | "softly" | | 2 | "really" |
| |
| 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) | |
| 43.46% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1415 | | totalAiIsms | 16 | | found | | 0 | | | 1 | | | 2 | | | 3 | | word | "practiced ease" | | count | 1 |
| | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | |
| | highlights | | 0 | "silence" | | 1 | "weight" | | 2 | "measured" | | 3 | "practiced ease" | | 4 | "flickered" | | 5 | "coded" | | 6 | "sentinel" | | 7 | "flicked" | | 8 | "footsteps" | | 9 | "tension" | | 10 | "unspoken" | | 11 | "trembled" | | 12 | "warmth" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 122 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 122 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 158 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 44 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 11 | | markdownWords | 18 | | totalWords | 1399 | | ratio | 0.013 | | matches | | 0 | "definitely" | | 1 | "her" | | 2 | "happened" | | 3 | "kethara" | | 4 | "What we almost had." | | 5 | "gone" | | 6 | "leave" | | 7 | "messenger" | | 8 | "‘Regrettable circumstances prevent further engagement.’" | | 9 | "terrified" | | 10 | "me" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 22 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 23 | | wordCount | 897 | | uniqueNames | 14 | | maxNameDensity | 0.56 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Lucien" | | discoveredNames | | Aurora | 1 | | London | 1 | | Ptolemy | 3 | | Eva | 1 | | Golden | 1 | | Empress | 1 | | Brick | 1 | | Lane | 1 | | Moreau | 1 | | French | 1 | | Lucien | 4 | | Rory | 5 | | Shoreditch | 1 | | Swallowed | 1 |
| | persons | | 0 | "Aurora" | | 1 | "Ptolemy" | | 2 | "Eva" | | 3 | "Moreau" | | 4 | "Lucien" | | 5 | "Rory" |
| | places | | 0 | "London" | | 1 | "Golden" | | 2 | "Brick" | | 3 | "Lane" | | 4 | "Shoreditch" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 48 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1399 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 158 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 80 | | mean | 17.49 | | std | 15.5 | | cv | 0.886 | | sampleLengths | | 0 | 43 | | 1 | 17 | | 2 | 61 | | 3 | 5 | | 4 | 8 | | 5 | 6 | | 6 | 38 | | 7 | 57 | | 8 | 6 | | 9 | 19 | | 10 | 12 | | 11 | 43 | | 12 | 5 | | 13 | 3 | | 14 | 2 | | 15 | 6 | | 16 | 11 | | 17 | 13 | | 18 | 37 | | 19 | 7 | | 20 | 23 | | 21 | 8 | | 22 | 7 | | 23 | 31 | | 24 | 24 | | 25 | 8 | | 26 | 8 | | 27 | 4 | | 28 | 8 | | 29 | 37 | | 30 | 8 | | 31 | 7 | | 32 | 3 | | 33 | 9 | | 34 | 21 | | 35 | 12 | | 36 | 24 | | 37 | 7 | | 38 | 26 | | 39 | 4 | | 40 | 12 | | 41 | 10 | | 42 | 3 | | 43 | 29 | | 44 | 20 | | 45 | 7 | | 46 | 16 | | 47 | 9 | | 48 | 81 | | 49 | 3 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 122 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 165 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 158 | | ratio | 0.057 | | matches | | 0 | "Not true silence—there was always something in London, even at this hour—but the absence of Ptolemy’s evening purr, the usual creak of Eva’s overstuffed bookshelves shifting under their weight." | | 1 | "His gaze swept over her—the damp black hair, the tired lines around her bright blue eyes, the sleeve of her hoodie pushed up just enough to reveal the crescent scar at her wrist." | | 2 | "Something flickered in his heterochromatic eyes—regret?" | | 3 | "A gust of wind funneled through the hallway, rustling the stack of papers taped to the wall—maps of ley lines, coded sigils, a smudged photo of the two of them from last winter tucked beneath a magnet." | | 4 | "Not because she didn’t trust him—she did, too much, even now." | | 5 | "She could hear him behind her—his careful footsteps, the tap of his cane on hardwood, the soft rustle as he removed his coat." | | 6 | "They’d danced around each other for months—the sharp wit, the late-night council over gin and cryptic lore, the way her breath had caught once when he’d brushed a drop of blood from her lip, his thumb lingering just a second too long." | | 7 | "Then, the night at the old theatre in Shoreditch—her leaning in, his hand on her waist, the air thick with unspoken want—and the call that came in." | | 8 | "When she handed him a chipped teacup—his favorite, she remembered—he took it with a nod." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 914 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 35 | | adverbRatio | 0.038293216630196934 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.00437636761487965 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 158 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 158 | | mean | 8.85 | | std | 8.41 | | cv | 0.95 | | sampleLengths | | 0 | 8 | | 1 | 29 | | 2 | 2 | | 3 | 4 | | 4 | 3 | | 5 | 4 | | 6 | 5 | | 7 | 5 | | 8 | 22 | | 9 | 30 | | 10 | 4 | | 11 | 5 | | 12 | 5 | | 13 | 3 | | 14 | 3 | | 15 | 1 | | 16 | 1 | | 17 | 3 | | 18 | 3 | | 19 | 7 | | 20 | 11 | | 21 | 11 | | 22 | 3 | | 23 | 6 | | 24 | 20 | | 25 | 2 | | 26 | 13 | | 27 | 8 | | 28 | 14 | | 29 | 6 | | 30 | 7 | | 31 | 12 | | 32 | 7 | | 33 | 5 | | 34 | 33 | | 35 | 6 | | 36 | 1 | | 37 | 3 | | 38 | 5 | | 39 | 3 | | 40 | 2 | | 41 | 4 | | 42 | 2 | | 43 | 11 | | 44 | 10 | | 45 | 3 | | 46 | 37 | | 47 | 3 | | 48 | 4 | | 49 | 2 |
| |
| 52.11% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.33544303797468356 | | totalSentences | 158 | | uniqueOpeners | 53 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 95 | | matches | | 0 | "Too precise for a delivery." | | 1 | "Too late for a guest." | | 2 | "Just turned the knob and" | | 3 | "Then, the night at the" | | 4 | "Then he kissed her." |
| | ratio | 0.053 | |
| 1.05% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 52 | | totalSentences | 95 | | matches | | 0 | "She’d come in from a" | | 1 | "She hadn’t wanted company." | | 2 | "She *definitely* hadn’t wanted ghosts." | | 3 | "Her breath caught." | | 4 | "She didn’t move." | | 5 | "Her fingers curled tighter around" | | 6 | "She stepped toward the front" | | 7 | "She didn’t speak." | | 8 | "He stood under the flickering" | | 9 | "His platinum hair slicked back" | | 10 | "His voice was low, French" | | 11 | "His gaze swept over her—the" | | 12 | "She couldn’t tell." | | 13 | "She arched a brow." | | 14 | "She didn’t mean for it" | | 15 | "he said softly" | | 16 | "He entered like he still" | | 17 | "He remembered the ritual." | | 18 | "He circled Lucien’s legs once," | | 19 | "She shot him a look." |
| | ratio | 0.547 | |
| 86.32% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 71 | | totalSentences | 95 | | matches | | 0 | "The first thing Aurora noticed" | | 1 | "Rory stood barefoot in the" | | 2 | "She’d come in from a" | | 3 | "She hadn’t wanted company." | | 4 | "She *definitely* hadn’t wanted ghosts." | | 5 | "Her breath caught." | | 6 | "She didn’t move." | | 7 | "Another three knocks." | | 8 | "Her fingers curled tighter around" | | 9 | "She stepped toward the front" | | 10 | "The deadbolts clicked open one" | | 11 | "She didn’t speak." | | 12 | "He stood under the flickering" | | 13 | "His platinum hair slicked back" | | 14 | "The ivory-handled cane rested lightly" | | 15 | "His voice was low, French" | | 16 | "Rory leaned against the doorframe," | | 17 | "His gaze swept over her—the" | | 18 | "Something flickered in his heterochromatic" | | 19 | "She couldn’t tell." |
| | ratio | 0.747 | |
| 52.63% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 95 | | matches | | | ratio | 0.011 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 26 | | technicalSentenceCount | 0 | | matches | (empty) | |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 21 | | uselessAdditionCount | 1 | | matches | | 0 | "they broke apart, foreheads resting together, he whispered," |
| |
| 97.37% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 13 | | fancyCount | 3 | | fancyTags | | 0 | "Lucien murmured (murmur)" | | 1 | "she whispered (whisper)" | | 2 | "he whispered (whisper)" |
| | dialogueSentences | 57 | | tagDensity | 0.228 | | leniency | 0.456 | | rawRatio | 0.231 | | effectiveRatio | 0.105 | |