| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 63 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 180 | | tagDensity | 0.35 | | leniency | 0.7 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 4480 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 91.07% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 4480 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "weight" | | 1 | "throbbed" | | 2 | "silence" | | 3 | "trembled" | | 4 | "traced" | | 5 | "echoed" |
| |
| 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 | 258 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 258 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 374 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 77 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 4481 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 72 | | unquotedAttributions | 0 | | matches | (empty) | |
| 46.96% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 211 | | wordCount | 2960 | | uniqueNames | 31 | | maxNameDensity | 2.06 | | worstName | "Rory" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 61 | | Carter | 2 | | Eva | 16 | | Brick | 4 | | Lane | 4 | | Moreau | 2 | | Golden | 2 | | Empress | 2 | | Cheung | 1 | | Evan | 6 | | Cardiff | 3 | | Brendan | 1 | | Jennifer | 2 | | Ellis | 2 | | Lucien | 55 | | Ptolemy | 15 | | World | 1 | | Best | 1 | | Boss | 1 | | Avaros | 5 | | English | 1 | | French | 3 | | Spanish | 1 | | Welsh | 3 | | Frenchman | 1 | | You | 4 | | Yu-Fei | 2 | | London | 4 | | South | 2 | | Marseille | 1 | | Water | 3 |
| | persons | | 0 | "Rory" | | 1 | "Carter" | | 2 | "Eva" | | 3 | "Moreau" | | 4 | "Cheung" | | 5 | "Evan" | | 6 | "Brendan" | | 7 | "Jennifer" | | 8 | "Ellis" | | 9 | "Lucien" | | 10 | "Ptolemy" | | 11 | "You" | | 12 | "Yu-Fei" | | 13 | "Water" |
| | places | | 0 | "Brick" | | 1 | "Lane" | | 2 | "Golden" | | 3 | "Cardiff" | | 4 | "Avaros" | | 5 | "English" | | 6 | "French" | | 7 | "Spanish" | | 8 | "London" | | 9 | "South" | | 10 | "Marseille" |
| | globalScore | 0.47 | | windowScore | 0.5 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 164 | | glossingSentenceCount | 1 | | matches | | 0 | "sounded like a tourist with a" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 4481 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 374 | | matches | | 0 | "traded that name" | | 1 | "hide that accent" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 217 | | mean | 20.65 | | std | 17.51 | | cv | 0.848 | | sampleLengths | | 0 | 80 | | 1 | 77 | | 2 | 2 | | 3 | 43 | | 4 | 2 | | 5 | 6 | | 6 | 39 | | 7 | 8 | | 8 | 9 | | 9 | 60 | | 10 | 4 | | 11 | 7 | | 12 | 35 | | 13 | 10 | | 14 | 6 | | 15 | 39 | | 16 | 5 | | 17 | 3 | | 18 | 8 | | 19 | 8 | | 20 | 70 | | 21 | 5 | | 22 | 7 | | 23 | 5 | | 24 | 13 | | 25 | 16 | | 26 | 24 | | 27 | 11 | | 28 | 10 | | 29 | 35 | | 30 | 12 | | 31 | 39 | | 32 | 4 | | 33 | 22 | | 34 | 47 | | 35 | 4 | | 36 | 6 | | 37 | 4 | | 38 | 9 | | 39 | 57 | | 40 | 42 | | 41 | 2 | | 42 | 7 | | 43 | 8 | | 44 | 72 | | 45 | 25 | | 46 | 30 | | 47 | 23 | | 48 | 32 | | 49 | 4 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 258 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 486 | | matches | (empty) | |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 1 | | semicolonCount | 0 | | flaggedSentences | 1 | | totalSentences | 374 | | ratio | 0.003 | | matches | | 0 | "Lucien read the note over her shoulder. His breath brushed the hair at her temple. The note said: Rory — ask the Frenchman what he calls the border between night and morning. He knows. He pretended not to know in Cardiff." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1706 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 21 | | adverbRatio | 0.0123094958968347 | | lyAdverbCount | 0 | | lyAdverbRatio | 0 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 374 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 374 | | mean | 11.98 | | std | 10.82 | | cv | 0.903 | | sampleLengths | | 0 | 19 | | 1 | 11 | | 2 | 17 | | 3 | 28 | | 4 | 5 | | 5 | 17 | | 6 | 10 | | 7 | 10 | | 8 | 7 | | 9 | 12 | | 10 | 21 | | 11 | 2 | | 12 | 7 | | 13 | 5 | | 14 | 15 | | 15 | 16 | | 16 | 2 | | 17 | 6 | | 18 | 8 | | 19 | 11 | | 20 | 7 | | 21 | 13 | | 22 | 8 | | 23 | 9 | | 24 | 3 | | 25 | 14 | | 26 | 17 | | 27 | 26 | | 28 | 4 | | 29 | 7 | | 30 | 11 | | 31 | 6 | | 32 | 18 | | 33 | 10 | | 34 | 6 | | 35 | 4 | | 36 | 9 | | 37 | 6 | | 38 | 2 | | 39 | 2 | | 40 | 2 | | 41 | 5 | | 42 | 9 | | 43 | 5 | | 44 | 3 | | 45 | 8 | | 46 | 8 | | 47 | 8 | | 48 | 12 | | 49 | 23 |
| |
| 39.57% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 39 | | diversityRatio | 0.16042780748663102 | | totalSentences | 374 | | uniqueOpeners | 60 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 208 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 58 | | totalSentences | 208 | | matches | | 0 | "His platinum blond hair lay" | | 1 | "He towered over Rory by" | | 2 | "He shifted his weight and" | | 3 | "She had detoured to Eva's" | | 4 | "He held out a folded" | | 5 | "She unfolded it against the" | | 6 | "Her thumb smeared the ink." | | 7 | "She pressed the square between" | | 8 | "Her father Brendan Carter had" | | 9 | "She did it for the" | | 10 | "She did not do it" | | 11 | "She locked the second deadbolt." | | 12 | "She locked the third deadbolt" | | 13 | "She shoved the books into" | | 14 | "She cleared a stool with" | | 15 | "He laid the cane across" | | 16 | "He bent and gathered the" | | 17 | "His charcoal sleeve rode up" | | 18 | "His hands shook around a" | | 19 | "She grabbed two mugs from" |
| | ratio | 0.279 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 205 | | totalSentences | 208 | | matches | | 0 | "The third deadbolt jammed and" | | 1 | "Curry steam pushed up through" | | 2 | "Ptolemy, Eva's tabby cat, balanced" | | 3 | "Rory turned her left wrist," | | 4 | "The door opened a crack." | | 5 | "Lucien Moreau stood on the" | | 6 | "His platinum blond hair lay" | | 7 | "An ivory-handled cane rested against" | | 8 | "Water dripped from the hem" | | 9 | "He towered over Rory by" | | 10 | "Rory pushed the door with" | | 11 | "The edge struck his shoe." | | 12 | "He shifted his weight and" | | 13 | "The pattern belonged to the" | | 14 | "Rory glanced past his elbow" | | 15 | "Eva had scratched her name" | | 16 | "Rory's hand tightened on the" | | 17 | "The wood pressed into her" | | 18 | "Rory looked down." | | 19 | "The Golden Empress bag hung" |
| | ratio | 0.986 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 208 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 98 | | technicalSentenceCount | 5 | | matches | | 0 | "A memory hit her from Cardiff: Evan at the bus stop with a flower in his fist and a smile that promised change." | | 1 | "Her father Brendan Carter had used that same smile in court, the barrister smile, and her mother Jennifer Ellis had warned her about men who rehearsed kindness." | | 2 | "She had woken with cat hair in her mouth and a bruise on her ribs from Evan's hand and a text from Eva that said Brick Lane." | | 3 | "Lucien smiled. The smile altered his face and softened the hard line of his jaw. His amber eye crinkled at the corner. His black eye stayed dark and still and h…" | | 4 | "Rory set her mug down on the counter. The ceramic clinked against the sink edge. She crossed the room in three steps and stopped in front of Lucien. The height …" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 63 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 47 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 180 | | tagDensity | 0.261 | | leniency | 0.522 | | rawRatio | 0.021 | | effectiveRatio | 0.011 | |