| 97.37% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 2 | | adverbTags | | 0 | "she said carefully [carefully]" | | 1 | "he said quietly [quietly]" |
| | dialogueSentences | 38 | | tagDensity | 0.342 | | leniency | 0.684 | | rawRatio | 0.154 | | effectiveRatio | 0.105 | |
| 84.77% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 985 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "carefully" | | 1 | "suddenly" | | 2 | "slightly" |
| |
| 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) | |
| 59.39% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 985 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "traced" | | 1 | "flicked" | | 2 | "familiar" | | 3 | "standard" | | 4 | "cascading" | | 5 | "porcelain" | | 6 | "pulse" | | 7 | "trembled" |
| |
| 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 | 0 | | narrationSentences | 81 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 81 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 105 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 42 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 970 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 11 | | unquotedAttributions | 0 | | matches | (empty) | |
| 50.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 50 | | wordCount | 760 | | uniqueNames | 14 | | maxNameDensity | 1.84 | | worstName | "Lucien" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Lucien" | | discoveredNames | | Rory | 12 | | Eva | 4 | | British | 1 | | Library | 1 | | Evan | 4 | | Moreau | 1 | | Marseille | 1 | | Lucien | 14 | | Queen | 2 | | Hearts | 2 | | Cardiff | 1 | | Brick | 1 | | Lane | 1 | | Ptolemy | 5 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Evan" | | 3 | "Moreau" | | 4 | "Lucien" | | 5 | "Ptolemy" |
| | places | | 0 | "British" | | 1 | "Library" | | 2 | "Marseille" | | 3 | "Queen" | | 4 | "Cardiff" | | 5 | "Brick" | | 6 | "Lane" |
| | globalScore | 0.579 | | windowScore | 0.5 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 54 | | 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 | 970 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 105 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 57 | | mean | 17.02 | | std | 11.95 | | cv | 0.702 | | sampleLengths | | 0 | 36 | | 1 | 23 | | 2 | 66 | | 3 | 4 | | 4 | 37 | | 5 | 11 | | 6 | 21 | | 7 | 20 | | 8 | 10 | | 9 | 14 | | 10 | 12 | | 11 | 21 | | 12 | 29 | | 13 | 6 | | 14 | 23 | | 15 | 24 | | 16 | 18 | | 17 | 37 | | 18 | 10 | | 19 | 3 | | 20 | 46 | | 21 | 7 | | 22 | 9 | | 23 | 8 | | 24 | 9 | | 25 | 29 | | 26 | 12 | | 27 | 23 | | 28 | 8 | | 29 | 5 | | 30 | 8 | | 31 | 26 | | 32 | 9 | | 33 | 5 | | 34 | 4 | | 35 | 16 | | 36 | 10 | | 37 | 16 | | 38 | 22 | | 39 | 13 | | 40 | 10 | | 41 | 39 | | 42 | 17 | | 43 | 6 | | 44 | 9 | | 45 | 28 | | 46 | 19 | | 47 | 13 | | 48 | 18 | | 49 | 29 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 81 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 128 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 105 | | ratio | 0.105 | | matches | | 0 | "The deadbolts clicked open one after another, each turn of the key sending an ache through her wrist—that old scar from the bicycle spill at age nine, the one Evan had traced with his thumb the night before everything went wrong." | | 1 | "The demon’s mismatched eyes—amber and void—flicked downward." | | 2 | "Lucien never asked for anything outright—he bartered, manipulated, negotiated." | | 3 | "Lucien took in the chaos—the boxes, the scrolls cascading off the dining table, the mug of tea gone cold beside Eva’s laptop." | | 4 | "He set his cane against the sofa—the casual disarmament of a man making a show of trust—and shrugged out of his coat." | | 5 | "Rory knew that look—the slight furrow between his brows, the way his thumb tapped against his thigh." | | 6 | "\"There’s a book\"—" | | 7 | "A playing card slid across the counter toward her—the Queen of Hearts, with a single drop of blood smeared across the queen’s cheek." | | 8 | "The memory hit like a blow—Evan’s hand around her arm, his breath against her neck as he hissed about loyalty." | | 9 | "The flat suddenly felt too small, the air thick with the scent of bergamot and old paper and whatever cologne Lucien favored—something dark and resinous, like frankincense burning." | | 10 | "Inside, the train ticket to Cardiff—the one she’d bought the morning after Evan’s arrest, intending to run home to her parents." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 767 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 24 | | adverbRatio | 0.03129074315514994 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.00651890482398957 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 105 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 105 | | mean | 9.24 | | std | 6.37 | | cv | 0.689 | | sampleLengths | | 0 | 16 | | 1 | 10 | | 2 | 10 | | 3 | 7 | | 4 | 13 | | 5 | 3 | | 6 | 25 | | 7 | 41 | | 8 | 4 | | 9 | 17 | | 10 | 13 | | 11 | 7 | | 12 | 11 | | 13 | 5 | | 14 | 16 | | 15 | 13 | | 16 | 7 | | 17 | 10 | | 18 | 14 | | 19 | 8 | | 20 | 4 | | 21 | 8 | | 22 | 9 | | 23 | 4 | | 24 | 11 | | 25 | 18 | | 26 | 2 | | 27 | 4 | | 28 | 10 | | 29 | 13 | | 30 | 22 | | 31 | 2 | | 32 | 13 | | 33 | 5 | | 34 | 22 | | 35 | 9 | | 36 | 6 | | 37 | 10 | | 38 | 3 | | 39 | 7 | | 40 | 16 | | 41 | 17 | | 42 | 6 | | 43 | 7 | | 44 | 6 | | 45 | 3 | | 46 | 2 | | 47 | 6 | | 48 | 9 | | 49 | 4 |
| |
| 60.63% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.38095238095238093 | | totalSentences | 105 | | uniqueOpeners | 40 | |
| 90.09% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 74 | | matches | | 0 | "Somewhere below, the curry house’s" | | 1 | "Somewhere on Brick Lane, a" |
| | ratio | 0.027 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 17 | | totalSentences | 74 | | matches | | 0 | "Her fingers stilled against the" | | 1 | "She exhaled through her nose" | | 2 | "he said in that smooth" | | 3 | "She made to shut the" | | 4 | "His fingers flexed around the" | | 5 | "He set his cane against" | | 6 | "she asked, more to occupy" | | 7 | "He was working up to" | | 8 | "He turned a page" | | 9 | "she said carefully" | | 10 | "She pushed the mug toward" | | 11 | "His thumb found the crescent" | | 12 | "he said quietly" | | 13 | "His thumb stroked her pulse" | | 14 | "he said, fishing an envelope" | | 15 | "Her fingers trembled slightly as" | | 16 | "She’d thought she lost it." |
| | ratio | 0.23 | |
| 34.32% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 63 | | totalSentences | 74 | | matches | | 0 | "The knock came just as" | | 1 | "A pattern she knew as" | | 2 | "Her fingers stilled against the" | | 3 | "Ptolemy arched his back beside" | | 4 | "She exhaled through her nose" | | 5 | "The deadbolts clicked open one" | | 6 | "The door swung inward." | | 7 | "Lucien Moreau stood on the" | | 8 | "Platinum hair slicked back, hands" | | 9 | "That infuriating half-smile playing at" | | 10 | "he said in that smooth" | | 11 | "Rory leaned against the doorframe." | | 12 | "Ptolemy wound between her ankles," | | 13 | "The demon’s mismatched eyes—amber and" | | 14 | "She made to shut the" | | 15 | "The cane shot out, wedging" | | 16 | "The quiet urgency in his" | | 17 | "Lucien never asked for anything" | | 18 | "This was new terrain." | | 19 | "Rain dripped from the overhang" |
| | ratio | 0.851 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 74 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 27 | | technicalSentenceCount | 0 | | matches | (empty) | |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 97.37% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 2 | | fancyTags | | 0 | "he corrected (correct)" | | 1 | "she murmured (murmur)" |
| | dialogueSentences | 38 | | tagDensity | 0.184 | | leniency | 0.368 | | rawRatio | 0.286 | | effectiveRatio | 0.105 | |