| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 17 | | adverbTagCount | 2 | | adverbTags | | 0 | "Lucien scoffed softly [softly]" | | 1 | "he said softly [softly]" |
| | dialogueSentences | 41 | | tagDensity | 0.415 | | leniency | 0.829 | | rawRatio | 0.118 | | effectiveRatio | 0.098 | |
| 78.83% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1417 | | totalAiIsmAdverbs | 6 | | found | | | highlights | | 0 | "really" | | 1 | "completely" | | 2 | "softly" | | 3 | "gently" |
| |
| 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) | |
| 47.07% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1417 | | totalAiIsms | 15 | | found | | | highlights | | 0 | "velvet" | | 1 | "weight" | | 2 | "silk" | | 3 | "dance" | | 4 | "encounter" | | 5 | "radiant" | | 6 | "ensuring" | | 7 | "silence" | | 8 | "tension" | | 9 | "tracing" | | 10 | "pulse" |
| |
| 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 | 75 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 75 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 99 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 34 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1415 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.90% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 31 | | wordCount | 1059 | | uniqueNames | 8 | | maxNameDensity | 1.32 | | worstName | "Aurora" | | maxWindowNameDensity | 2 | | worstWindowName | "Aurora" | | discoveredNames | | British | 1 | | Museum | 1 | | Oxford | 1 | | Thursday | 1 | | Moreau | 1 | | Parisian | 1 | | Aurora | 14 | | Lucien | 11 |
| | persons | | 0 | "Moreau" | | 1 | "Aurora" | | 2 | "Lucien" |
| | places | | | globalScore | 0.839 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 64 | | glossingSentenceCount | 1 | | matches | | 0 | "sounded like a velvet sheath hiding a razo" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1415 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 99 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 45 | | mean | 31.44 | | std | 16.18 | | cv | 0.515 | | sampleLengths | | 0 | 30 | | 1 | 55 | | 2 | 11 | | 3 | 54 | | 4 | 37 | | 5 | 52 | | 6 | 5 | | 7 | 24 | | 8 | 41 | | 9 | 21 | | 10 | 27 | | 11 | 46 | | 12 | 44 | | 13 | 33 | | 14 | 51 | | 15 | 42 | | 16 | 32 | | 17 | 13 | | 18 | 46 | | 19 | 20 | | 20 | 5 | | 21 | 5 | | 22 | 40 | | 23 | 57 | | 24 | 26 | | 25 | 27 | | 26 | 24 | | 27 | 3 | | 28 | 5 | | 29 | 27 | | 30 | 40 | | 31 | 21 | | 32 | 13 | | 33 | 62 | | 34 | 42 | | 35 | 20 | | 36 | 7 | | 37 | 50 | | 38 | 49 | | 39 | 41 | | 40 | 45 | | 41 | 30 | | 42 | 45 | | 43 | 27 | | 44 | 20 |
| |
| 95.91% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 75 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 172 | | matches | | |
| 85.14% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 2 | | semicolonCount | 1 | | flaggedSentences | 2 | | totalSentences | 99 | | ratio | 0.02 | | matches | | 0 | "His amber eye caught the amber glow of the hallway bulb; his black eye swallowed the light entirely." | | 1 | "The old name—the one he used only when they were alone in the dark, bargaining for secrets or skin—hung in the air between them." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1071 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 29 | | adverbRatio | 0.02707749766573296 | | lyAdverbCount | 13 | | lyAdverbRatio | 0.012138188608776844 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 99 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 99 | | mean | 14.29 | | std | 8.27 | | cv | 0.578 | | sampleLengths | | 0 | 30 | | 1 | 13 | | 2 | 23 | | 3 | 19 | | 4 | 11 | | 5 | 2 | | 6 | 12 | | 7 | 6 | | 8 | 7 | | 9 | 27 | | 10 | 14 | | 11 | 6 | | 12 | 17 | | 13 | 16 | | 14 | 18 | | 15 | 18 | | 16 | 5 | | 17 | 6 | | 18 | 11 | | 19 | 7 | | 20 | 21 | | 21 | 20 | | 22 | 3 | | 23 | 18 | | 24 | 15 | | 25 | 12 | | 26 | 23 | | 27 | 23 | | 28 | 5 | | 29 | 21 | | 30 | 18 | | 31 | 18 | | 32 | 15 | | 33 | 20 | | 34 | 16 | | 35 | 15 | | 36 | 29 | | 37 | 12 | | 38 | 1 | | 39 | 14 | | 40 | 18 | | 41 | 13 | | 42 | 16 | | 43 | 30 | | 44 | 8 | | 45 | 12 | | 46 | 5 | | 47 | 5 | | 48 | 24 | | 49 | 7 |
| |
| 59.26% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.37373737373737376 | | totalSentences | 99 | | uniqueOpeners | 37 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 70 | | matches | (empty) | | ratio | 0 | |
| 54.29% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 29 | | totalSentences | 70 | | matches | | 0 | "Her fingers pressed flat against" | | 1 | "She slid her right hand" | | 2 | "She crossed the creaking floorboards," | | 3 | "She threw the second, then" | | 4 | "His amber eye caught the" | | 5 | "She held the door firm," | | 6 | "His voice held that smooth," | | 7 | "She unlatched the chain, unceremoniously" | | 8 | "He shut the door with" | | 9 | "He leaned his cane against" | | 10 | "His jaw tightened, the pale" | | 11 | "She returned, kicking a wooden" | | 12 | "He unbuttoned the shirt with" | | 13 | "He sloughed the ruined silk" | | 14 | "She pressed the soaked rag" | | 15 | "His right hand shot out," | | 16 | "His skin seared with unnatural" | | 17 | "She leaned into his space," | | 18 | "she said, her voice dropping" | | 19 | "She wrung the blackened rag" |
| | ratio | 0.414 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 67 | | totalSentences | 70 | | matches | | 0 | "Aurora pushed a pile of" | | 1 | "Ptolemy hissed, his striped tail" | | 2 | "Aurora rubbed her knuckles over" | | 3 | "Her fingers pressed flat against" | | 4 | "Eva was in Oxford until" | | 5 | "Silas never crossed the river" | | 6 | "She slid her right hand" | | 7 | "She crossed the creaking floorboards," | | 8 | "The metal screeched in its" | | 9 | "She threw the second, then" | | 10 | "Lucien Moreau leaned against the" | | 11 | "Water dripped from the hem" | | 12 | "His amber eye caught the" | | 13 | "Aurora did not drop the" | | 14 | "She held the door firm," | | 15 | "His voice held that smooth," | | 16 | "Aurora glanced down." | | 17 | "A dark crimson stain bloomed" | | 18 | "She unlatched the chain, unceremoniously" | | 19 | "Lucien limped past her, the" |
| | ratio | 0.957 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 70 | | matches | (empty) | | ratio | 0 | |
| 69.60% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 39 | | technicalSentenceCount | 4 | | matches | | 0 | "The heat off his skin was stifling now, a wall of pure radiant force that made the tiny hairs on her arms stand up." | | 1 | "She unrolled a length, wrapping it around his torso, forcing him to lean into her to pull it tight." | | 2 | "His hand slid from her wrist down to her waist, his fingers hooking into the belt loop of her trousers, pulling her half an inch closer as she tied the knot ove…" | | 3 | "Lucien reached up, his knuckles grazing her jawline, tracing the sharp angle up to her ear." |
| |
| 36.76% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 17 | | uselessAdditionCount | 3 | | matches | | 0 | "Lucien sank, his long legs stretching out" | | 1 | "she said, her voice dropping an octave, flat and hard" | | 2 | "Lucien whispered, his thumb pressing gently into the hollow beneath her lip" |
| |
| 52.44% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 4 | | fancyTags | | 0 | "he murmured (murmur)" | | 1 | "she whispered (whisper)" | | 2 | "he murmured (murmur)" | | 3 | "Lucien whispered (whisper)" |
| | dialogueSentences | 41 | | tagDensity | 0.195 | | leniency | 0.39 | | rawRatio | 0.5 | | effectiveRatio | 0.195 | |