| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 16 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said finally [finally]" |
| | dialogueSentences | 31 | | tagDensity | 0.516 | | leniency | 1 | | rawRatio | 0.063 | | effectiveRatio | 0.063 | |
| 75.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1200 | | totalAiIsmAdverbs | 6 | | found | | | highlights | | 0 | "slightly" | | 1 | "very" | | 2 | "quickly" |
| |
| 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) | |
| 87.50% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1200 | | totalAiIsms | 3 | | found | | | highlights | | 0 | "silence" | | 1 | "familiar" | | 2 | "traced" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "let out a breath" | | count | 1 |
|
| | highlights | | |
| 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 | 47 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 86 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 2 | | totalWords | 1191 | | ratio | 0.002 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 15 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 18 | | wordCount | 747 | | uniqueNames | 9 | | maxNameDensity | 0.67 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 5 | | Ptolemy | 2 | | Lucien | 3 | | Moreau | 1 | | London | 1 | | Aurora | 1 | | Laila | 1 | | Eva | 3 | | Bordeaux | 1 |
| | persons | | 0 | "Rory" | | 1 | "Ptolemy" | | 2 | "Lucien" | | 3 | "Moreau" | | 4 | "Laila" | | 5 | "Eva" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 60.71% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 28 | | glossingSentenceCount | 1 | | matches | | |
| 32.07% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.679 | | wordCount | 1191 | | matches | | 0 | "not forgiveness, not yet, but perhaps the first uncertain step toward it" | | 1 | "not yet, but perhaps the first uncertain step toward it" |
| |
| 95.74% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 47 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 27 | | mean | 44.11 | | std | 31.74 | | cv | 0.72 | | sampleLengths | | 0 | 35 | | 1 | 36 | | 2 | 104 | | 3 | 48 | | 4 | 19 | | 5 | 44 | | 6 | 40 | | 7 | 51 | | 8 | 95 | | 9 | 51 | | 10 | 18 | | 11 | 49 | | 12 | 7 | | 13 | 87 | | 14 | 8 | | 15 | 19 | | 16 | 25 | | 17 | 4 | | 18 | 104 | | 19 | 28 | | 20 | 30 | | 21 | 107 | | 22 | 90 | | 23 | 20 | | 24 | 8 | | 25 | 33 | | 26 | 31 |
| |
| 74.30% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 34 | | matches | | 0 | "been designed" | | 1 | "were fixed" | | 2 | "been kicked" |
| |
| 36.07% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 122 | | matches | | 0 | "was interrupting" | | 1 | "was going" | | 2 | "was standing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 1 | | flaggedSentences | 7 | | totalSentences | 47 | | ratio | 0.149 | | matches | | 0 | "He had his cane in one hand, the ivory handle catching what little light spilled from the stairwell bulb, and his mismatched eyes—one amber, one black as a well with no bottom—were fixed on her with an expression she couldn't read, which was, in itself, unusual." | | 1 | "\"I'm aware.\" He glanced past her, into the cramped chaos of Eva's flat—the towers of books, the scrolls unrolled across every flat surface, the smell of ink and dust and the curry house exhaust drifting up through the floorboards." | | 2 | "\"That's not how this works, Lucien. You don't get to vanish for six weeks and then show up dripping on my doorstep at—\" she checked the imaginary clock in her head \"—whatever obscene hour this is, and just *come in.*\"" | | 3 | "Ptolemy took the opportunity to slip past both their ankles and vanish into the flat, entirely unbothered by the six weeks of silence, the unanswered calls, the last conversation that had ended with Rory throwing a very good bottle of Bordeaux at a wall because he wouldn't tell her where he was going or why or when—if ever—he'd be back." | | 4 | "\"You told me it was too dangerous for me to know where you were going. You told me that like I was something to be managed. And then you just—\" she snapped her fingers \"—gone. No word. Nothing. I thought—\" She stopped herself." | | 5 | "\"I don't. I know that. I knew it then too, and I did it anyway, because I am, in the end, a coward when it comes to the one thing I actually care about losing.\" His amber eye held hers; the black one gave nothing back, the way it never did, a door that simply had no other side." | | 6 | "He almost smiled, and for the first time since she'd opened the door, something in his shoulders loosened, just slightly—not forgiveness, not yet, but perhaps the first uncertain step toward it." |
| |
| 84.67% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 678 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 39 | | adverbRatio | 0.05752212389380531 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.017699115044247787 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 47 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 47 | | mean | 25.34 | | std | 20 | | cv | 0.789 | | sampleLengths | | 0 | 35 | | 1 | 36 | | 2 | 39 | | 3 | 46 | | 4 | 7 | | 5 | 12 | | 6 | 4 | | 7 | 16 | | 8 | 28 | | 9 | 19 | | 10 | 39 | | 11 | 5 | | 12 | 40 | | 13 | 5 | | 14 | 46 | | 15 | 35 | | 16 | 60 | | 17 | 23 | | 18 | 10 | | 19 | 18 | | 20 | 18 | | 21 | 49 | | 22 | 7 | | 23 | 44 | | 24 | 43 | | 25 | 8 | | 26 | 9 | | 27 | 10 | | 28 | 12 | | 29 | 13 | | 30 | 4 | | 31 | 24 | | 32 | 80 | | 33 | 28 | | 34 | 21 | | 35 | 9 | | 36 | 3 | | 37 | 59 | | 38 | 45 | | 39 | 86 | | 40 | 4 | | 41 | 14 | | 42 | 6 | | 43 | 8 | | 44 | 15 | | 45 | 18 | | 46 | 31 |
| |
| 80.14% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.5319148936170213 | | totalSentences | 47 | | uniqueOpeners | 25 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 32 | | matches | | 0 | "Just her name" | | 1 | "Just Rory, the way he" |
| | ratio | 0.063 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 18 | | totalSentences | 32 | | matches | | 0 | "she muttered, and finally the" | | 1 | "He had his cane in" | | 2 | "Her voice came out steadier" | | 3 | "He glanced past her, into" | | 4 | "she checked the imaginary clock" | | 5 | "He set the cane against" | | 6 | "he said, which was such" | | 7 | "She crossed her arms, aware" | | 8 | "she snapped her fingers \"—gone." | | 9 | "he said quietly" | | 10 | "Her jaw tightened" | | 11 | "His mouth curved, but there" | | 12 | "He looked down at the" | | 13 | "she said, but the anger" | | 14 | "His amber eye held hers;" | | 15 | "she said finally, quietly, hating" | | 16 | "She let out a breath" | | 17 | "He almost smiled, and for" |
| | ratio | 0.563 | |
| 22.50% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 28 | | totalSentences | 32 | | matches | | 0 | "The third deadbolt stuck the" | | 1 | "she muttered, and finally the" | | 2 | "Lucien Moreau stood on the" | | 3 | "He had his cane in" | | 4 | "Lucien's face was normally a" | | 5 | "Tonight it looked more like" | | 6 | "Her voice came out steadier" | | 7 | "He glanced past her, into" | | 8 | "she checked the imaginary clock" | | 9 | "Something in his voice cracked," | | 10 | "Ptolemy took the opportunity to" | | 11 | "Lucien stepped inside, careful as" | | 12 | "He set the cane against" | | 13 | "Water dripped off the hem" | | 14 | "he said, which was such" | | 15 | "She crossed her arms, aware" | | 16 | "she snapped her fingers \"—gone." | | 17 | "he said quietly" | | 18 | "Her jaw tightened" | | 19 | "His mouth curved, but there" |
| | ratio | 0.875 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 32 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 14 | | technicalSentenceCount | 4 | | matches | | 0 | "Lucien Moreau stood on the landing above the curry house, rain slicking his platinum hair flat against his skull, dark spots blooming across the shoulders of a …" | | 1 | "Ptolemy took the opportunity to slip past both their ankles and vanish into the flat, entirely unbothered by the six weeks of silence, the unanswered calls, the…" | | 2 | "Lucien stepped inside, careful as always, folding himself into the small space like a man used to rooms that didn't quite fit him." | | 3 | "Rory stood very still in the middle of Eva's cluttered flat, surrounded by books she didn't have the energy to translate and a cat who'd already made himself at…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 16 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 53.23% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 3 | | fancyTags | | 0 | "she muttered (mutter)" | | 1 | "she snapped (snap)" | | 2 | "he agreed (agree)" |
| | dialogueSentences | 31 | | tagDensity | 0.226 | | leniency | 0.452 | | rawRatio | 0.429 | | effectiveRatio | 0.194 | |