| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 5 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 60 | | tagDensity | 0.083 | | leniency | 0.167 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 94.25% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1740 | | totalAiIsmAdverbs | 2 | | found | | 0 | | | 1 | | adverb | "deliberately" | | count | 1 |
|
| | highlights | | |
| 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.14% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1740 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "navigated" | | 1 | "pulsed" | | 2 | "stomach" | | 3 | "silence" | | 4 | "charm" | | 5 | "pulse" | | 6 | "traced" | | 7 | "footsteps" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "knuckles turned white" | | count | 1 |
| | 1 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | 0 | "knuckles went white" | | 1 | "hung in the air" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 103 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 103 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 157 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 47 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1729 | | ratio | 0 | | matches | (empty) | |
| 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 | 45 | | wordCount | 1186 | | uniqueNames | 17 | | maxNameDensity | 0.76 | | worstName | "Lucien" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Rory" | | discoveredNames | | Lucien | 9 | | Moreau | 3 | | Eva | 6 | | Brick | 1 | | Lane | 1 | | Soho | 2 | | Rory | 9 | | Occitan | 1 | | Clerkenwell | 1 | | Ptolemy | 5 | | London | 1 | | Catullus | 1 | | Yu-Fei | 1 | | Pre-Law | 1 | | Friday | 1 | | Cardiff | 1 | | Evan | 1 |
| | persons | | 0 | "Lucien" | | 1 | "Moreau" | | 2 | "Eva" | | 3 | "Rory" | | 4 | "Ptolemy" | | 5 | "Evan" |
| | places | | 0 | "Brick" | | 1 | "Lane" | | 2 | "Soho" | | 3 | "Clerkenwell" | | 4 | "London" | | 5 | "Cardiff" |
| | globalScore | 1 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 57 | | glossingSentenceCount | 1 | | matches | | 0 | "tasted like a decision rather than an imp" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1729 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 157 | | matches | | 0 | "remembered that cane" | | 1 | "hated that she" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 86 | | mean | 20.1 | | std | 21 | | cv | 1.045 | | sampleLengths | | 0 | 27 | | 1 | 27 | | 2 | 8 | | 3 | 109 | | 4 | 2 | | 5 | 13 | | 6 | 22 | | 7 | 5 | | 8 | 15 | | 9 | 55 | | 10 | 12 | | 11 | 2 | | 12 | 1 | | 13 | 11 | | 14 | 67 | | 15 | 63 | | 16 | 1 | | 17 | 8 | | 18 | 43 | | 19 | 4 | | 20 | 3 | | 21 | 77 | | 22 | 20 | | 23 | 57 | | 24 | 6 | | 25 | 29 | | 26 | 5 | | 27 | 10 | | 28 | 13 | | 29 | 8 | | 30 | 15 | | 31 | 32 | | 32 | 52 | | 33 | 4 | | 34 | 40 | | 35 | 14 | | 36 | 13 | | 37 | 2 | | 38 | 13 | | 39 | 35 | | 40 | 1 | | 41 | 1 | | 42 | 4 | | 43 | 48 | | 44 | 31 | | 45 | 3 | | 46 | 4 | | 47 | 1 | | 48 | 44 | | 49 | 38 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 103 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 195 | | matches | | |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 0 | | semicolonCount | 0 | | flaggedSentences | 0 | | totalSentences | 157 | | ratio | 0 | | matches | (empty) | |
| 96.86% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1193 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 52 | | adverbRatio | 0.04358759430008382 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.009220452640402346 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 157 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 157 | | mean | 11.01 | | std | 10.94 | | cv | 0.993 | | sampleLengths | | 0 | 27 | | 1 | 6 | | 2 | 21 | | 3 | 8 | | 4 | 5 | | 5 | 6 | | 6 | 4 | | 7 | 31 | | 8 | 5 | | 9 | 40 | | 10 | 3 | | 11 | 3 | | 12 | 12 | | 13 | 2 | | 14 | 13 | | 15 | 16 | | 16 | 6 | | 17 | 5 | | 18 | 15 | | 19 | 10 | | 20 | 17 | | 21 | 5 | | 22 | 23 | | 23 | 7 | | 24 | 3 | | 25 | 2 | | 26 | 2 | | 27 | 1 | | 28 | 11 | | 29 | 3 | | 30 | 46 | | 31 | 18 | | 32 | 11 | | 33 | 23 | | 34 | 9 | | 35 | 20 | | 36 | 1 | | 37 | 8 | | 38 | 38 | | 39 | 5 | | 40 | 4 | | 41 | 3 | | 42 | 3 | | 43 | 27 | | 44 | 8 | | 45 | 39 | | 46 | 4 | | 47 | 16 | | 48 | 7 | | 49 | 3 |
| |
| 58.81% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.39490445859872614 | | totalSentences | 157 | | uniqueOpeners | 62 | |
| 71.68% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 93 | | matches | | 0 | "Then he'd vanished for twelve" | | 1 | "Of course he didn't." |
| | ratio | 0.022 | |
| 65.16% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 36 | | totalSentences | 93 | | matches | | 0 | "she said, and pushed the" | | 1 | "His cane caught the gap." | | 2 | "She remembered that cane." | | 3 | "She'd kissed him." | | 4 | "He'd let her." | | 5 | "She hadn't eaten since morning." | | 6 | "Her delivery bag sat half-packed" | | 7 | "She eased the pressure on" | | 8 | "She opened the door just" | | 9 | "He stood in Eva's flat" | | 10 | "He tilted his head toward" | | 11 | "He hadn't changed." | | 12 | "His gaze dropped to her" | | 13 | "He'd asked about it once," | | 14 | "He hadn't pushed." | | 15 | "He just waited, patient as" | | 16 | "He set the cane against" | | 17 | "She thought of Yu-Fei, seventy-two" | | 18 | "She pressed them flat against" | | 19 | "She picked up Ptolemy, who" |
| | ratio | 0.387 | |
| 35.27% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 79 | | totalSentences | 93 | | matches | | 0 | "The door swung open and" | | 1 | "Rory's grip tightened on the" | | 2 | "Ptolemy threaded between her ankles," | | 3 | "she said, and pushed the" | | 4 | "His cane caught the gap." | | 5 | "Ivory handle, thin as a" | | 6 | "She remembered that cane." | | 7 | "The way he'd touched the" | | 8 | "She'd kissed him." | | 9 | "He'd let her." | | 10 | "Rory pressed her forehead against" | | 11 | "The wood smelled of curry" | | 12 | "She hadn't eaten since morning." | | 13 | "Her delivery bag sat half-packed" | | 14 | "She eased the pressure on" | | 15 | "The cane withdrew." | | 16 | "She opened the door just" | | 17 | "Lucien moved like someone who'd" | | 18 | "He stood in Eva's flat" | | 19 | "Books avalanched across every surface:" |
| | ratio | 0.849 | |
| 53.76% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 93 | | matches | | 0 | "Even Ptolemy stopped purring." |
| | ratio | 0.011 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 39 | | technicalSentenceCount | 9 | | matches | | 0 | "Ptolemy threaded between her ankles, purring at the stranger with the traitor's enthusiasm cats reserved for people who didn't deserve it." | | 1 | "The way he'd touched the cut on her temple with fingers that smelled of bergamot and old paper, his mismatched eyes close enough to count the flecks of gold in …" | | 2 | "Lucien moved like someone who'd learned early that space belonged to other people and he was borrowing it." | | 3 | "The only wild thing about Lucien Moreau was his face, those two impossible eyes that shouldn't have worked together but did, the way minor chords worked, the wa…" | | 4 | "She thought of Yu-Fei, seventy-two and five foot nothing, wielding a cleaver with the casual competence of a woman who'd survived things she never discussed." | | 5 | "Lucien obeyed his own clock, always had, the kind of man who arrived at his own funeral fashionably late and critiqued the flower arrangements." | | 6 | "Ptolemy leapt from her arms and landed on a stack of medieval poetry that toppled in slow, papery devastation." | | 7 | "He smelled the same, bergamot and old paper, and underneath it something faintly mineral, like the deep rock of a place that didn't exist on any human map." | | 8 | "His thumb traced the line of it, gentle with an undercurrent of restraint that she felt in the slight tremor of his fingers, the careful way he held himself bac…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 5 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 60 | | tagDensity | 0.033 | | leniency | 0.067 | | rawRatio | 0 | | effectiveRatio | 0 | |