| 43.14% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 40 | | adverbTagCount | 8 | | adverbTags | | 0 | "Lucien said quietly [quietly]" | | 1 | "His jaw tightened almost [almost]" | | 2 | "she asked finally [finally]" | | 3 | "His accent thickened slightly [slightly]" | | 4 | "she said quietly [quietly]" | | 5 | "he said quietly [quietly]" | | 6 | "Lucien said simply [simply]" | | 7 | "she asked softly [softly]" |
| | dialogueSentences | 102 | | tagDensity | 0.392 | | leniency | 0.784 | | rawRatio | 0.2 | | effectiveRatio | 0.157 | |
| 80.17% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1765 | | totalAiIsmAdverbs | 7 | | found | | 0 | | | 1 | | | 2 | | adverb | "deliberately" | | count | 1 |
| | 3 | | | 4 | |
| | highlights | | 0 | "suddenly" | | 1 | "slightly" | | 2 | "deliberately" | | 3 | "gently" | | 4 | "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) | |
| 60.34% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1765 | | totalAiIsms | 14 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | word | "practiced ease" | | count | 1 |
| | 8 | | | 9 | | | 10 | | word | "carried the weight" | | count | 1 |
|
| | highlights | | 0 | "silence" | | 1 | "familiar" | | 2 | "intensity" | | 3 | "chill" | | 4 | "affection" | | 5 | "intricate" | | 6 | "calibrated" | | 7 | "practiced ease" | | 8 | "racing" | | 9 | "ensure" | | 10 | "carried the weight" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 1 | | found | | 0 | | label | "hung in the air" | | count | 2 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 105 | | matches | (empty) | |
| 88.44% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 4 | | narrationSentences | 105 | | filterMatches | (empty) | | hedgeMatches | | 0 | "seemed to" | | 1 | "tried to" | | 2 | "managed to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 166 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 37 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1750 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 37 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 39 | | wordCount | 995 | | uniqueNames | 6 | | maxNameDensity | 1.61 | | worstName | "Aurora" | | maxWindowNameDensity | 3 | | worstWindowName | "Lucien" | | discoveredNames | | Eva | 4 | | French | 1 | | Lucien | 14 | | Aurora | 16 | | Ptolemy | 3 | | Soho | 1 |
| | persons | | 0 | "Eva" | | 1 | "Lucien" | | 2 | "Aurora" | | 3 | "Ptolemy" |
| | places | | | globalScore | 0.696 | | windowScore | 0.667 | |
| 34.62% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 65 | | glossingSentenceCount | 3 | | matches | | 0 | "looked like an antique compass" | | 1 | "symbols that seemed to shift when viewed directly" | | 2 | "felt like escaping quicksand" |
| |
| 85.71% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.143 | | wordCount | 1750 | | matches | | 0 | "not forgiveness, not yet, but possibility" | | 1 | "not yet, but possibility" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 166 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 95 | | mean | 18.42 | | std | 9.46 | | cv | 0.514 | | sampleLengths | | 0 | 33 | | 1 | 1 | | 2 | 32 | | 3 | 21 | | 4 | 43 | | 5 | 14 | | 6 | 15 | | 7 | 23 | | 8 | 18 | | 9 | 11 | | 10 | 20 | | 11 | 5 | | 12 | 19 | | 13 | 20 | | 14 | 22 | | 15 | 9 | | 16 | 20 | | 17 | 18 | | 18 | 7 | | 19 | 9 | | 20 | 28 | | 21 | 6 | | 22 | 27 | | 23 | 30 | | 24 | 7 | | 25 | 24 | | 26 | 25 | | 27 | 4 | | 28 | 16 | | 29 | 26 | | 30 | 16 | | 31 | 23 | | 32 | 4 | | 33 | 19 | | 34 | 11 | | 35 | 16 | | 36 | 13 | | 37 | 16 | | 38 | 37 | | 39 | 6 | | 40 | 35 | | 41 | 23 | | 42 | 12 | | 43 | 32 | | 44 | 11 | | 45 | 13 | | 46 | 13 | | 47 | 30 | | 48 | 8 | | 49 | 8 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 105 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 193 | | matches | | |
| 5.16% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 166 | | ratio | 0.048 | | matches | | 0 | "His mismatched eyes—one amber, one black—regarded her with a familiar intensity." | | 1 | "Something shifted in his expression—a softening around the eyes, perhaps at the familiar nickname she hadn't meant to use." | | 2 | "He passed close enough that she caught his scent—sandalwood and something else, something uniquely him that triggered a cascade of memories she'd spent months trying to bury." | | 3 | "He surveyed the cramped space—books stacked on every surface, scrolls tucked into the umbrella stand, Eva's research notes taped to the walls." | | 4 | "The memory hung between them—stolen moments in his Soho office, her back against antique bookshelves, his hands tangled in her hair as he swore that what was between them transcended the politics of his world." | | 5 | "But this—this was beyond human malice." | | 6 | "For the first time that night, Lucien smiled—a small, genuine curve of lips that reached his eyes." | | 7 | "Something shifted in the air between them—not forgiveness, not yet, but possibility." |
| |
| 84.11% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1006 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 51 | | adverbRatio | 0.05069582504970179 | | lyAdverbCount | 28 | | lyAdverbRatio | 0.027833001988071572 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 166 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 166 | | mean | 10.54 | | std | 6.64 | | cv | 0.63 | | sampleLengths | | 0 | 8 | | 1 | 25 | | 2 | 1 | | 3 | 17 | | 4 | 15 | | 5 | 17 | | 6 | 4 | | 7 | 6 | | 8 | 21 | | 9 | 16 | | 10 | 14 | | 11 | 11 | | 12 | 4 | | 13 | 14 | | 14 | 2 | | 15 | 7 | | 16 | 18 | | 17 | 9 | | 18 | 2 | | 19 | 13 | | 20 | 7 | | 21 | 5 | | 22 | 19 | | 23 | 10 | | 24 | 10 | | 25 | 8 | | 26 | 14 | | 27 | 7 | | 28 | 2 | | 29 | 20 | | 30 | 12 | | 31 | 6 | | 32 | 3 | | 33 | 4 | | 34 | 9 | | 35 | 16 | | 36 | 12 | | 37 | 6 | | 38 | 27 | | 39 | 8 | | 40 | 22 | | 41 | 7 | | 42 | 13 | | 43 | 3 | | 44 | 8 | | 45 | 18 | | 46 | 7 | | 47 | 3 | | 48 | 1 | | 49 | 6 |
| |
| 59.04% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 2 | | diversityRatio | 0.3614457831325301 | | totalSentences | 166 | | uniqueOpeners | 60 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 93 | | matches | (empty) | | ratio | 0 | |
| 43.66% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 41 | | totalSentences | 93 | | matches | | 0 | "He stood in the dim" | | 1 | "His voice carried the same" | | 2 | "Her fingers tightened on the" | | 3 | "she asked, making no move" | | 4 | "His mismatched eyes—one amber, one" | | 5 | "She'd meant to burn it" | | 6 | "She crossed her arms, suddenly" | | 7 | "He lifted the attaché case" | | 8 | "He met her gaze steadily" | | 9 | "she said, stepping aside" | | 10 | "He passed close enough that" | | 11 | "He surveyed the cramped space—books" | | 12 | "Her heart stuttered." | | 13 | "His jaw tightened almost imperceptibly" | | 14 | "she said, but her left" | | 15 | "she asked finally" | | 16 | "His fingers tightened around the" | | 17 | "she repeated, the word bitter" | | 18 | "His accent thickened slightly, the" | | 19 | "she said quietly" |
| | ratio | 0.441 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 86 | | totalSentences | 93 | | matches | | 0 | "The deadbolt slid back with" | | 1 | "Aurora yanked open the door," | | 2 | "He stood in the dim" | | 3 | "His voice carried the same" | | 4 | "Her fingers tightened on the" | | 5 | "The charcoal suit hugged his" | | 6 | "she asked, making no move" | | 7 | "His mismatched eyes—one amber, one" | | 8 | "Aurora glanced down at the" | | 9 | "She'd meant to burn it" | | 10 | "She crossed her arms, suddenly" | | 11 | "Lucien said quietly" | | 12 | "A series of thuds and" | | 13 | "The restaurant was closing for" | | 14 | "Something shifted in his expression—a" | | 15 | "He lifted the attaché case" | | 16 | "Aurora laughed, the sound sharp" | | 17 | "He met her gaze steadily" | | 18 | "The faint scratching of claws" | | 19 | "Lucien asked, his eyes tracking" |
| | ratio | 0.925 | |
| 53.76% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 93 | | matches | | 0 | "If Lucien had sought out" |
| | ratio | 0.011 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 35 | | technicalSentenceCount | 2 | | matches | | 0 | "He passed close enough that she caught his scent—sandalwood and something else, something uniquely him that triggered a cascade of memories she'd spent months t…" | | 1 | "He nodded once, a nearly imperceptible acknowledgment that carried the weight of shared history." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 40 | | uselessAdditionCount | 2 | | matches | | 0 | "Lucien asked, his eyes tracking the tabby" | | 1 | "He took, his knuckles white around the cane" |
| |
| 81.37% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 24 | | fancyCount | 7 | | fancyTags | | 0 | "he observed (observe)" | | 1 | "she repeated (repeat)" | | 2 | "he challenged (challenge)" | | 3 | "he continued (continue)" | | 4 | "he murmured (murmur)" | | 5 | "she admitted (admit)" | | 6 | "she agreed (agree)" |
| | dialogueSentences | 102 | | tagDensity | 0.235 | | leniency | 0.471 | | rawRatio | 0.292 | | effectiveRatio | 0.137 | |