| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 15 | | adverbTagCount | 1 | | adverbTags | | 0 | "Lucien said finally [finally]" |
| | dialogueSentences | 28 | | tagDensity | 0.536 | | leniency | 1 | | rawRatio | 0.067 | | effectiveRatio | 0.067 | |
| 83.08% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1182 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "very" | | 1 | "tightly" | | 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) | |
| 74.62% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1182 | | totalAiIsms | 6 | | found | | 0 | | | 1 | | | 2 | | | 3 | | word | "practiced ease" | | count | 1 |
| | 4 | |
| | highlights | | 0 | "silence" | | 1 | "flicker" | | 2 | "charm" | | 3 | "practiced ease" | | 4 | "resolved" |
| |
| 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 | 34 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 34 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 48 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 75 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 4 | | totalWords | 1172 | | ratio | 0.003 | | matches | | 0 | "forgive me" | | 1 | "forgive me" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 15 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 32 | | wordCount | 728 | | uniqueNames | 14 | | maxNameDensity | 0.96 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 7 | | Bethnal | 1 | | Green | 1 | | Yu-Fei | 1 | | Eva | 3 | | Ptolemy | 5 | | Moreau | 2 | | Marseille | 1 | | French | 1 | | Fournier | 1 | | Street | 1 | | Lucien | 6 | | London | 1 | | Bengali | 1 |
| | persons | | 0 | "Rory" | | 1 | "Yu-Fei" | | 2 | "Eva" | | 3 | "Ptolemy" | | 4 | "Moreau" | | 5 | "Lucien" | | 6 | "Bengali" |
| | places | | 0 | "Bethnal" | | 1 | "Marseille" | | 2 | "Fournier" | | 3 | "Street" | | 4 | "London" |
| | globalScore | 1 | | windowScore | 0.833 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 28 | | glossingSentenceCount | 3 | | matches | | 0 | "seemed hungrier somehow—and then the amber one, softer, followed a half-second behind" | | 1 | "not quite anger, something closer to old grief" | | 2 | "nder the sofa, apparently deciding the danger" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1172 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 48 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 24 | | mean | 48.83 | | std | 27.66 | | cv | 0.566 | | sampleLengths | | 0 | 76 | | 1 | 4 | | 2 | 70 | | 3 | 32 | | 4 | 48 | | 5 | 43 | | 6 | 98 | | 7 | 43 | | 8 | 93 | | 9 | 16 | | 10 | 38 | | 11 | 33 | | 12 | 60 | | 13 | 68 | | 14 | 81 | | 15 | 37 | | 16 | 66 | | 17 | 35 | | 18 | 96 | | 19 | 34 | | 20 | 65 | | 21 | 15 | | 22 | 5 | | 23 | 16 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 34 | | matches | (empty) | |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 121 | | matches | | 0 | "wasn't performing" | | 1 | "was pricing" | | 2 | "was working" | | 3 | "was closing" | | 4 | "was feeling" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 1 | | flaggedSentences | 6 | | totalSentences | 48 | | ratio | 0.125 | | matches | | 0 | "The three deadbolts took longer to work through than usual—Rory's fingers weren't quite steady, not after the day she'd had, ferrying dumplings through Bethnal Green in the rain while Yu-Fei texted her increasingly irate corrections to the delivery order." | | 1 | "His black eye found her first—it always did, that one seemed hungrier somehow—and then the amber one, softer, followed a half-second behind." | | 2 | "Lucien's gaze swept the flat the way it always did—cataloguing, she'd once told him, like he was pricing the place for auction—taking in the books stacked on every surface, the scrolls Eva had left unrolled across the coffee table, the general chaos of two women who'd stopped pretending they had time to be tidy." | | 3 | "\"I did not disappear.\" A flicker of something crossed his face—not quite anger, something closer to old grief." | | 4 | "Lucien Moreau did not do quiet contrition; he did charm, deflection, the practiced ease of a man who talked his way through London's underworld for a living." | | 5 | "Rory looked at him for a long moment—the damp shoulders, the cane he was gripping just a little too tightly, the black eye that never quite hid what he was feeling no matter how good he was at hiding everything else—and felt the old pull of him settle back into her chest like something that had never really left, just gone quiet for a while." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 550 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 22 | | adverbRatio | 0.04 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.016363636363636365 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 48 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 48 | | mean | 24.42 | | std | 17.63 | | cv | 0.722 | | sampleLengths | | 0 | 39 | | 1 | 37 | | 2 | 4 | | 3 | 48 | | 4 | 22 | | 5 | 29 | | 6 | 3 | | 7 | 22 | | 8 | 19 | | 9 | 7 | | 10 | 18 | | 11 | 25 | | 12 | 5 | | 13 | 47 | | 14 | 46 | | 15 | 43 | | 16 | 54 | | 17 | 39 | | 18 | 10 | | 19 | 6 | | 20 | 13 | | 21 | 25 | | 22 | 25 | | 23 | 8 | | 24 | 18 | | 25 | 42 | | 26 | 47 | | 27 | 21 | | 28 | 19 | | 29 | 27 | | 30 | 4 | | 31 | 31 | | 32 | 3 | | 33 | 34 | | 34 | 13 | | 35 | 53 | | 36 | 13 | | 37 | 22 | | 38 | 5 | | 39 | 16 | | 40 | 75 | | 41 | 7 | | 42 | 27 | | 43 | 65 | | 44 | 15 | | 45 | 5 | | 46 | 9 | | 47 | 7 |
| |
| 77.78% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.5416666666666666 | | totalSentences | 48 | | uniqueOpeners | 26 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 33 | | matches | | 0 | "Instead she stepped back and" |
| | ratio | 0.03 | |
| 86.67% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 11 | | totalSentences | 33 | | matches | | 0 | "It was not Eva." | | 1 | "His black eye found her" | | 2 | "His voice had that particular" | | 3 | "She didn't move from the" | | 4 | "She should have said no." | | 5 | "She'd rehearsed saying no, actually," | | 6 | "She'd had a whole speech" | | 7 | "He straightened, cane tapping once" | | 8 | "She crossed her arms, aware" | | 9 | "He said it quietly, and" | | 10 | "He didn't argue it" |
| | ratio | 0.333 | |
| 20.61% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 29 | | totalSentences | 33 | | matches | | 0 | "The three deadbolts took longer" | | 1 | "It was not Eva." | | 2 | "Lucien Moreau stood in the" | | 3 | "His black eye found her" | | 4 | "His voice had that particular" | | 5 | "She didn't move from the" | | 6 | "A small smile touched his" | | 7 | "She should have said no." | | 8 | "She'd rehearsed saying no, actually," | | 9 | "She'd had a whole speech" | | 10 | "Lucien's gaze swept the flat" | | 11 | "Ptolemy wound around his ankles" | | 12 | "Rory said, mostly to fill" | | 13 | "He straightened, cane tapping once" | | 14 | "The words came out sharper" | | 15 | "A flicker of something crossed" | | 16 | "She crossed her arms, aware" | | 17 | "He said it quietly, and" | | 18 | "Lucien Moreau did not do" | | 19 | "This was something else." |
| | ratio | 0.879 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 33 | | matches | | | ratio | 0.03 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 14 | | technicalSentenceCount | 6 | | matches | | 0 | "Lucien Moreau stood in the narrow hallway with rain darkening the shoulders of his charcoal suit, his ivory-handled cane resting against one hip like he'd simpl…" | | 1 | "She'd had a whole speech ready, something cool and final about boundaries and about the last time, about waking up in his flat off Fournier Street to find him g…" | | 2 | "Lucien's gaze swept the flat the way it always did—cataloguing, she'd once told him, like he was pricing the place for auction—taking in the books stacked on ev…" | | 3 | "Ptolemy wound around his ankles with the shameless loyalty of a cat who had never once been loyal to Rory herself, and Lucien crouched to scratch behind the tab…" | | 4 | "Lucien Moreau did not do quiet contrition; he did charm, deflection, the practiced ease of a man who talked his way through London's underworld for a living." | | 5 | "Rory looked at him for a long moment—the damp shoulders, the cane he was gripping just a little too tightly, the black eye that never quite hid what he was feel…" |
| |
| 91.67% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 15 | | uselessAdditionCount | 1 | | matches | | 0 | "He straightened, cane tapping once against the floorboards" |
| |
| 78.57% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 6 | | fancyCount | 2 | | fancyTags | | 0 | "She'd (would)" | | 1 | "Rory repeated (repeat)" |
| | dialogueSentences | 28 | | tagDensity | 0.214 | | leniency | 0.429 | | rawRatio | 0.333 | | effectiveRatio | 0.143 | |