| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 25 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 77 | | tagDensity | 0.325 | | leniency | 0.649 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 89.36% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1879 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "slightly" | | 1 | "suddenly" | | 2 | "carefully" | | 3 | "perfectly" |
| |
| 100.00% | AI-ism character names | Target: 0 AI-default names (16 tracked, −20% each) | | codexExemptions | | | found | (empty) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 81.37% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1879 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "methodical" | | 1 | "flickered" | | 2 | "measured" | | 3 | "reminder" | | 4 | "scanned" | | 5 | "silence" | | 6 | "stomach" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
| | 1 | | label | "stomach dropped/sank" | | count | 1 |
|
| | highlights | | 0 | "eyes narrowed" | | 1 | "stomach dropped" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 130 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 130 | | filterMatches | | | hedgeMatches | | 0 | "happened to" | | 1 | "seemed to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 180 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 57 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 5 | | markdownWords | 31 | | totalWords | 1860 | | ratio | 0.017 | | matches | | 0 | "You’re not going back to him, Rory. I’ll sleep on your floor if I have to." | | 1 | "since when?" | | 2 | "why didn’t you tell me?" | | 3 | "are you okay?" | | 4 | "I’m fine, hope you are" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 35 | | unquotedAttributions | 0 | | matches | (empty) | |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 103 | | wordCount | 1370 | | uniqueNames | 20 | | maxNameDensity | 2.7 | | worstName | "Rory" | | maxWindowNameDensity | 5.5 | | worstWindowName | "Eva" | | discoveredNames | | Dean | 1 | | Street | 2 | | Raven | 1 | | Nest | 1 | | Aurora | 1 | | Carter | 1 | | Frith | 1 | | Silas | 10 | | Evan | 1 | | Rory | 37 | | Cardiff | 3 | | Fiesta | 1 | | Eva | 36 | | Clwb | 1 | | Ifor | 1 | | Bach | 1 | | Prague | 1 | | Vienna | 1 | | Thames | 1 | | October | 1 |
| | persons | | 0 | "Raven" | | 1 | "Aurora" | | 2 | "Carter" | | 3 | "Silas" | | 4 | "Evan" | | 5 | "Rory" | | 6 | "Eva" | | 7 | "Ifor" | | 8 | "Bach" |
| | places | | 0 | "Dean" | | 1 | "Street" | | 2 | "Frith" | | 3 | "Cardiff" | | 4 | "Clwb" | | 5 | "Prague" | | 6 | "Vienna" | | 7 | "Thames" | | 8 | "October" |
| | globalScore | 0.15 | | windowScore | 0 | |
| 45.83% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 72 | | glossingSentenceCount | 3 | | matches | | 0 | "seemed tall because she held herself like she’d measured the room before entering it" | | 1 | "looked like a stranger who happened to be" | | 2 | "looked like the girl from Cardiff again—t" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.538 | | wordCount | 1860 | | matches | | 0 | "not with disapproval but with the particular attention he gave anything out of the or" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 180 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 88 | | mean | 21.14 | | std | 22.99 | | cv | 1.088 | | sampleLengths | | 0 | 80 | | 1 | 58 | | 2 | 8 | | 3 | 1 | | 4 | 17 | | 5 | 1 | | 6 | 55 | | 7 | 3 | | 8 | 45 | | 9 | 16 | | 10 | 66 | | 11 | 98 | | 12 | 25 | | 13 | 29 | | 14 | 41 | | 15 | 3 | | 16 | 19 | | 17 | 6 | | 18 | 51 | | 19 | 40 | | 20 | 6 | | 21 | 9 | | 22 | 1 | | 23 | 3 | | 24 | 29 | | 25 | 11 | | 26 | 28 | | 27 | 4 | | 28 | 4 | | 29 | 72 | | 30 | 27 | | 31 | 16 | | 32 | 3 | | 33 | 4 | | 34 | 5 | | 35 | 10 | | 36 | 15 | | 37 | 19 | | 38 | 12 | | 39 | 1 | | 40 | 5 | | 41 | 33 | | 42 | 4 | | 43 | 34 | | 44 | 2 | | 45 | 63 | | 46 | 69 | | 47 | 5 | | 48 | 4 | | 49 | 4 |
| |
| 99.87% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 130 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 259 | | matches | | 0 | "was lifting" | | 1 | "was reading" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 19 | | semicolonCount | 0 | | flaggedSentences | 13 | | totalSentences | 180 | | ratio | 0.072 | | matches | | 0 | "She’d meant to go straight to bed—her last delivery had been a soggy bag of dumplings to a man in a bathrobe on Frith Street, and her shoes were still damp—but the bar was warm, and Silas had left the corner lamp on, and she wanted ten minutes of quiet before the ceiling started creaking." | | 1 | "That was the thing about Silas—he had a way of not asking that made you want to tell him everything, and a way of listening that made you glad you hadn’t." | | 2 | "Hair cropped close to her skull, no color left in it at all—just a severe, elegant black that made her cheekbones look sharper than Rory remembered." | | 3 | "Her scar—small, crescent-shaped, on her left wrist—pressed against the bar’s edge, and she felt it, suddenly, like a reminder." | | 4 | "Eva scanned the room—two old men in the corner, Silas behind the bar, Rory on the stool—and her gaze snagged." | | 5 | "She stood by the stool next to Rory’s, and Rory caught the scent of her—clean, expensive, no smoke." | | 6 | "She put her hands on the bar—no rings, nails short and clean." | | 7 | "“Don’t thank me.” Eva’s eyes—brown, Rory noticed, not the hazel she’d remembered—were steady." | | 8 | "The old Eva—the one who danced on tables at Clwb Ifor Bach, the one who once stole a traffic cone and wore it as a hat for an entire night—that Eva had been bright and reckless and exhausting." | | 9 | "Rory looked at the maps on the wall—Prague, Vienna, a hand-drawn chart of the Thames with red pins stuck in it." | | 10 | "Somewhere upstairs, a floorboard creaked—the building settling, or Silas moving around in the secret room, or just the ghost of all the things they hadn’t said." | | 11 | "This Eva just looked at her hand, then at Rory’s face, and for a second she looked like the girl from Cardiff again—the one who had believed, against all evidence, that the world could be kind." | | 12 | "Then she looked at the card in her hand—Eva’s name, Eva’s number, Eva’s new life—and she thought about the girl who had driven her out of Cardiff with a cigarette and a borrowed car, and the woman who had just walked out into the rain with sparkling water and a wedding in October." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1395 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 51 | | adverbRatio | 0.03655913978494624 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.0064516129032258064 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 180 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 180 | | mean | 10.33 | | std | 10.11 | | cv | 0.979 | | sampleLengths | | 0 | 25 | | 1 | 55 | | 2 | 23 | | 3 | 16 | | 4 | 15 | | 5 | 4 | | 6 | 8 | | 7 | 1 | | 8 | 16 | | 9 | 1 | | 10 | 1 | | 11 | 5 | | 12 | 20 | | 13 | 4 | | 14 | 3 | | 15 | 23 | | 16 | 3 | | 17 | 11 | | 18 | 3 | | 19 | 31 | | 20 | 16 | | 21 | 22 | | 22 | 8 | | 23 | 26 | | 24 | 2 | | 25 | 6 | | 26 | 2 | | 27 | 7 | | 28 | 18 | | 29 | 1 | | 30 | 19 | | 31 | 33 | | 32 | 11 | | 33 | 9 | | 34 | 25 | | 35 | 6 | | 36 | 4 | | 37 | 19 | | 38 | 20 | | 39 | 5 | | 40 | 16 | | 41 | 3 | | 42 | 4 | | 43 | 15 | | 44 | 5 | | 45 | 1 | | 46 | 12 | | 47 | 39 | | 48 | 3 | | 49 | 4 |
| |
| 39.44% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 19 | | diversityRatio | 0.26666666666666666 | | totalSentences | 180 | | uniqueOpeners | 48 | |
| 93.46% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 107 | | matches | | 0 | "Then Eva’s mouth did something" | | 1 | "Somewhere upstairs, a floorboard creaked—the" | | 2 | "Then she looked at the" |
| | ratio | 0.028 | |
| 92.90% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 34 | | totalSentences | 107 | | matches | | 0 | "She’d meant to go straight" | | 1 | "She slid onto the stool" | | 2 | "He didn’t look up." | | 3 | "He set the glass down" | | 4 | "His hazel eyes narrowed slightly," | | 5 | "He didn’t ask." | | 6 | "She was lifting the glass" | | 7 | "I’ll sleep on your floor" | | 8 | "Her scar—small, crescent-shaped, on her" | | 9 | "It wasn’t a question." | | 10 | "It was the sound of" | | 11 | "he said, and then he" | | 12 | "She didn’t sit immediately." | | 13 | "She stood by the stool" | | 14 | "She used to smell like" | | 15 | "She put her hands on" | | 16 | "She wanted to say *since" | | 17 | "She hadn’t called." | | 18 | "She had told herself that" | | 19 | "She got up and poured" |
| | ratio | 0.318 | |
| 11.40% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 96 | | totalSentences | 107 | | matches | | 0 | "The rain had chased everyone" | | 1 | "She’d meant to go straight" | | 2 | "She slid onto the stool" | | 3 | "Silas was behind the counter," | | 4 | "The silver signet ring on" | | 5 | "He didn’t look up." | | 6 | "He set the glass down" | | 7 | "That made him look up." | | 8 | "His hazel eyes narrowed slightly," | | 9 | "Rory didn’t drink whiskey." | | 10 | "Silas poured two fingers of" | | 11 | "He didn’t ask." | | 12 | "That was the thing about" | | 13 | "She was lifting the glass" | | 14 | "The woman who walked in" | | 15 | "Hair cropped close to her" | | 16 | "Rory knew her before she" | | 17 | "That was the strange arithmetic" | | 18 | "Eva who had once dyed" | | 19 | "Eva who had dragged Rory" |
| | ratio | 0.897 | |
| 46.73% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 107 | | matches | | 0 | "Now Eva stood just inside" |
| | ratio | 0.009 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 50 | | technicalSentenceCount | 3 | | matches | | 0 | "Then Eva’s mouth did something complicated, a smile that arrived too late and left too soon." | | 1 | "Then she looked at the card in her hand—Eva’s name, Eva’s number, Eva’s new life—and she thought about the girl who had driven her out of Cardiff with a cigaret…" | | 2 | "He nodded, as if that were a perfectly acceptable answer, and went back to polishing his glasses." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 25 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 17 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 77 | | tagDensity | 0.221 | | leniency | 0.442 | | rawRatio | 0.059 | | effectiveRatio | 0.026 | |