| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 8 | | adverbTagCount | 1 | | adverbTags | | 0 | "Lucien's cane tapped once [once]" |
| | dialogueSentences | 45 | | tagDensity | 0.178 | | leniency | 0.356 | | rawRatio | 0.125 | | effectiveRatio | 0.044 | |
| 88.53% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1308 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "slowly" | | 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) | |
| 57.95% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1308 | | totalAiIsms | 11 | | found | | | highlights | | 0 | "echoed" | | 1 | "pulse" | | 2 | "silence" | | 3 | "stomach" | | 4 | "tracing" | | 5 | "familiar" | | 6 | "flicked" | | 7 | "flicker" | | 8 | "whisper" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "stomach dropped/sank" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 78 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 78 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 114 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 49 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 15 | | totalWords | 1300 | | ratio | 0.012 | | matches | | 0 | "She's the key to the lock. He's the blade to cut it." | | 1 | "get out, now." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 13 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 51 | | wordCount | 970 | | uniqueNames | 11 | | maxNameDensity | 1.65 | | worstName | "Rory" | | maxWindowNameDensity | 3 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 16 | | Ptolemy | 2 | | Persian | 1 | | Eva | 10 | | Camden | 1 | | Lucien | 14 | | London | 1 | | Aurora | 3 | | Close | 1 | | Naples | 1 | | Tuesday | 1 |
| | persons | | 0 | "Rory" | | 1 | "Ptolemy" | | 2 | "Eva" | | 3 | "Lucien" | | 4 | "Aurora" |
| | places | | 0 | "Camden" | | 1 | "London" | | 2 | "Naples" |
| | globalScore | 0.675 | | windowScore | 0.667 | |
| 73.08% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 65 | | glossingSentenceCount | 2 | | matches | | 0 | "as if daring her to make the first move" | | 1 | "as if weighing whether to intervene before deciding against whatever danger he sensed in the air" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1300 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 114 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 48 | | mean | 27.08 | | std | 20.66 | | cv | 0.763 | | sampleLengths | | 0 | 68 | | 1 | 49 | | 2 | 66 | | 3 | 11 | | 4 | 24 | | 5 | 47 | | 6 | 18 | | 7 | 25 | | 8 | 31 | | 9 | 71 | | 10 | 8 | | 11 | 1 | | 12 | 6 | | 13 | 1 | | 14 | 30 | | 15 | 37 | | 16 | 36 | | 17 | 9 | | 18 | 2 | | 19 | 10 | | 20 | 59 | | 21 | 71 | | 22 | 11 | | 23 | 44 | | 24 | 21 | | 25 | 20 | | 26 | 7 | | 27 | 13 | | 28 | 40 | | 29 | 6 | | 30 | 2 | | 31 | 9 | | 32 | 53 | | 33 | 66 | | 34 | 14 | | 35 | 23 | | 36 | 19 | | 37 | 39 | | 38 | 48 | | 39 | 11 | | 40 | 2 | | 41 | 12 | | 42 | 29 | | 43 | 40 | | 44 | 12 | | 45 | 34 | | 46 | 31 | | 47 | 14 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 78 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 167 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 2 | | flaggedSentences | 9 | | totalSentences | 114 | | ratio | 0.079 | | matches | | 0 | "She'd rehearsed this moment every night for three months—what she'd say, how she wouldn't flinch, why she didn't owe him anything." | | 1 | "Eva's flat smelled exactly as Rory remembered—incense smoke and peppermint tea, with Ptolemy's musk underneath like old books left in damp weather." | | 2 | "The ivory cane leaned against the doorframe, its tip tapping once against the wood—not irritation, just punctuation to the sudden silence between them." | | 3 | "Or perhaps it was just that Lucien took up too much space—his presence, the scent of bergamot and gun oil that clung to him like a second skin." | | 4 | "\"Because the last time someone tried to weaponize ley line energy, half of Borough Market burned.\" Lucien's cane tapped once against the floorboards— Naples yellow and inlaid with ivory, she noticed now." | | 5 | "\"I believe in what I see.\" Lucien reached into his breast pocket, withdrawing a folded sheet of paper—Eva's handwriting, the member at the end of her 't' a tiny dagger." | | 6 | "In the top left corner, Eva had drawn the same alchemical symbol from the notes on the coffee table—a stylized eye inside a triangle." | | 7 | "The memories hit like a freight train—Lucien hunched over a coffee cup in some anonymous flat, his breath stale with whiskey and something older; her own hands shaking as she pocketed a fragment of shadow that refused to dissipate; Eva's voice on the phone saying *get out, now.*" | | 8 | "Rory's delivery bag waited by the door, her phone buzzing inside with another order—probably some corporate drone expecting a vindaloo to save his miserable Tuesday." |
| |
| 98.11% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 759 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 32 | | adverbRatio | 0.04216073781291173 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.006587615283267457 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 114 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 114 | | mean | 11.4 | | std | 8.64 | | cv | 0.758 | | sampleLengths | | 0 | 15 | | 1 | 20 | | 2 | 21 | | 3 | 12 | | 4 | 22 | | 5 | 27 | | 6 | 26 | | 7 | 17 | | 8 | 23 | | 9 | 3 | | 10 | 8 | | 11 | 3 | | 12 | 4 | | 13 | 7 | | 14 | 10 | | 15 | 6 | | 16 | 11 | | 17 | 18 | | 18 | 10 | | 19 | 2 | | 20 | 18 | | 21 | 12 | | 22 | 9 | | 23 | 4 | | 24 | 10 | | 25 | 8 | | 26 | 13 | | 27 | 4 | | 28 | 28 | | 29 | 39 | | 30 | 5 | | 31 | 3 | | 32 | 1 | | 33 | 6 | | 34 | 1 | | 35 | 6 | | 36 | 10 | | 37 | 9 | | 38 | 5 | | 39 | 9 | | 40 | 12 | | 41 | 16 | | 42 | 8 | | 43 | 14 | | 44 | 14 | | 45 | 9 | | 46 | 2 | | 47 | 7 | | 48 | 3 | | 49 | 27 |
| |
| 55.56% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 0 | | diversityRatio | 0.3333333333333333 | | totalSentences | 114 | | uniqueOpeners | 38 | |
| 43.29% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 77 | | matches | | 0 | "More like someone appreciating a" |
| | ratio | 0.013 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 16 | | totalSentences | 77 | | matches | | 0 | "She'd rehearsed this moment every" | | 1 | "His platinum hair caught the" | | 2 | "She hadn't even heard the" | | 3 | "he said, moving past her" | | 4 | "She pointed at the notes." | | 5 | "He turned slowly, amber eye" | | 6 | "She obliged, giving the familiar" | | 7 | "He crossed the room in" | | 8 | "His lantern jaw tightened" | | 9 | "He held it out, not" | | 10 | "He's the blade to cut" | | 11 | "She crushed the note tighter." | | 12 | "She tucked the ruined note" | | 13 | "He simply reached for his" | | 14 | "She left it where it" | | 15 | "she said, stepping past Lucien" |
| | ratio | 0.208 | |
| 5.45% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 70 | | totalSentences | 77 | | matches | | 0 | "The key turned with a" | | 1 | "Aurora's fingers tightened around the" | | 2 | "She'd rehearsed this moment every" | | 3 | "The door swung inward before" | | 4 | "Eva's flat smelled exactly as" | | 5 | "The tabby blinked up from" | | 6 | "Lucien stood there in a" | | 7 | "His platinum hair caught the" | | 8 | "The ivory cane leaned against" | | 9 | "The word came out steadier" | | 10 | "Lucien's lips curled." | | 11 | "She hadn't even heard the" | | 12 | "The fault of too many" | | 13 | "Rory stepped inside anyway, boots" | | 14 | "The bag slipped from her" | | 15 | "The way his voice flattened" | | 16 | "Rory's stomach dropped like she'd" | | 17 | "Eva had been picking at" | | 18 | "Lucien closed the door with" | | 19 | "The deadbolts snicked into place" |
| | ratio | 0.909 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 77 | | matches | (empty) | | ratio | 0 | |
| 63.49% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 36 | | technicalSentenceCount | 4 | | matches | | 0 | "Lucien stood there in a charcoal suit that should have looked ridiculous on a person who hunted in shadows but somehow made him look more dangerous." | | 1 | "Ptolemy paused mid-step in the kitchen doorway, ears pricked, as if weighing whether to intervene before deciding against whatever danger he sensed in the air." | | 2 | "The memories hit like a freight train—Lucien hunched over a coffee cup in some anonymous flat, his breath stale with whiskey and something older; her own hands …" | | 3 | "Rory's delivery bag waited by the door, her phone buzzing inside with another order—probably some corporate drone expecting a vindaloo to save his miserable Tue…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 8 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 45 | | tagDensity | 0.067 | | leniency | 0.133 | | rawRatio | 0 | | effectiveRatio | 0 | |