| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 19 | | adverbTagCount | 7 | | adverbTags | | 0 | "Bethan pulled back [back]" | | 1 | "Bethan gestured vaguely [vaguely]" | | 2 | "Bethan laughed again [again]" | | 3 | "Rory gestured loosely [loosely]" | | 4 | "Bethan looked around [around]" | | 5 | "Rory said finally [finally]" | | 6 | "She laughed softly [softly]" |
| | dialogueSentences | 41 | | tagDensity | 0.463 | | leniency | 0.927 | | rawRatio | 0.368 | | effectiveRatio | 0.341 | |
| 35.69% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1244 | | totalAiIsmAdverbs | 16 | | found | | 0 | | | 1 | | | 2 | | | 3 | | adverb | "deliberately" | | count | 1 |
| | 4 | | | 5 | | | 6 | | | 7 | | | 8 | |
| | highlights | | 0 | "carefully" | | 1 | "really" | | 2 | "quickly" | | 3 | "deliberately" | | 4 | "gently" | | 5 | "slightly" | | 6 | "very" | | 7 | "loosely" | | 8 | "softly" |
| |
| 80.00% | AI-ism character names | Target: 0 AI-default names (16 tracked, −20% each) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 87.94% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1244 | | totalAiIsms | 3 | | found | | | highlights | | |
| 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 | 43 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 43 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 65 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 89 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 2 | | totalWords | 1231 | | ratio | 0.002 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 18 | | unquotedAttributions | 0 | | matches | (empty) | |
| 13.95% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 54 | | wordCount | 882 | | uniqueNames | 12 | | maxNameDensity | 2.72 | | worstName | "Rory" | | maxWindowNameDensity | 4 | | worstWindowName | "Rory" | | discoveredNames | | Raven | 1 | | Nest | 1 | | Tuesday | 1 | | Silas | 3 | | Cardiff | 1 | | University | 1 | | Pryce | 1 | | Rory | 24 | | Marcus | 2 | | Bethan | 17 | | Tom | 1 | | Clapham | 1 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Silas" | | 3 | "University" | | 4 | "Rory" | | 5 | "Marcus" | | 6 | "Bethan" | | 7 | "Tom" |
| | places | | | globalScore | 0.139 | | windowScore | 0.333 | |
| 7.14% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 35 | | glossingSentenceCount | 2 | | matches | | 0 | "smelled like drugstore perfume and cigaret" | | 1 | "quite envy and wasn't quite grief, but sat close to both" | | 2 | "quite grief, but sat close to both" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1231 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 65 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 38 | | mean | 32.39 | | std | 28.44 | | cv | 0.878 | | sampleLengths | | 0 | 87 | | 1 | 9 | | 2 | 119 | | 3 | 1 | | 4 | 33 | | 5 | 1 | | 6 | 67 | | 7 | 10 | | 8 | 52 | | 9 | 2 | | 10 | 22 | | 11 | 28 | | 12 | 52 | | 13 | 22 | | 14 | 39 | | 15 | 3 | | 16 | 56 | | 17 | 16 | | 18 | 15 | | 19 | 4 | | 20 | 23 | | 21 | 88 | | 22 | 9 | | 23 | 2 | | 24 | 2 | | 25 | 26 | | 26 | 26 | | 27 | 47 | | 28 | 27 | | 29 | 69 | | 30 | 11 | | 31 | 51 | | 32 | 14 | | 33 | 64 | | 34 | 36 | | 35 | 23 | | 36 | 67 | | 37 | 8 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 43 | | matches | (empty) | |
| 31.22% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 158 | | matches | | 0 | "wasn't really drinking" | | 1 | "was laughing" | | 2 | "was already crossing" | | 3 | "was describing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 65 | | ratio | 0.108 | | matches | | 0 | "The Raven's Nest smelled the way it always did on a Tuesday night—stale hops and candle wax, the faint mineral tang of old brass polish that Silas insisted on using instead of anything modern." | | 1 | "It was the laugh that did it—a short, bright bark of a sound, quickly swallowed, the kind of laugh that used to echo down the halls of Cardiff University's law building at two in the morning when they should have both been asleep." | | 2 | "Rory set her glass down carefully, deliberately, the way Silas had taught her—never let your hands show what your face is hiding—and turned." | | 3 | "\"Seven. Seven years, Rory, I counted it on the way over here because I couldn't believe my own eyes.\" Bethan pulled back and looked at her properly, and Rory watched something shift behind her old friend's expression—the delight dimming slightly, replaced by a more careful, assessing look." | | 4 | "Rory almost laughed at that, at the sheer distance between the person Bethan was describing and the woman sitting across from her—the one who delivered noodles by day and slipped through back rooms and false names by night, who had learned to read a room for exits before she read it for friendly faces, who hadn't set foot in a lecture hall in years and didn't miss it, not really, except in these exact moments, when someone held up a mirror to the life she might have had." | | 5 | "Bethan's face did something complicated—surprise, then concern, then a visible effort to smooth both away, to not make it strange." | | 6 | "Rory studied her friend's hands—unscarred, soft, a hand that had never had to learn to hold a blade steady or count exits in under three seconds—and felt something that wasn't quite envy and wasn't quite grief, but sat close to both." |
| |
| 74.35% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 893 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 57 | | adverbRatio | 0.06382978723404255 | | lyAdverbCount | 23 | | lyAdverbRatio | 0.025755879059350503 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 65 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 65 | | mean | 18.94 | | std | 16.35 | | cv | 0.864 | | sampleLengths | | 0 | 34 | | 1 | 37 | | 2 | 4 | | 3 | 12 | | 4 | 9 | | 5 | 43 | | 6 | 14 | | 7 | 2 | | 8 | 33 | | 9 | 27 | | 10 | 1 | | 11 | 10 | | 12 | 23 | | 13 | 1 | | 14 | 9 | | 15 | 45 | | 16 | 13 | | 17 | 10 | | 18 | 47 | | 19 | 5 | | 20 | 2 | | 21 | 12 | | 22 | 10 | | 23 | 28 | | 24 | 52 | | 25 | 18 | | 26 | 4 | | 27 | 39 | | 28 | 3 | | 29 | 38 | | 30 | 18 | | 31 | 16 | | 32 | 15 | | 33 | 4 | | 34 | 23 | | 35 | 88 | | 36 | 5 | | 37 | 4 | | 38 | 2 | | 39 | 2 | | 40 | 20 | | 41 | 6 | | 42 | 19 | | 43 | 7 | | 44 | 39 | | 45 | 8 | | 46 | 27 | | 47 | 28 | | 48 | 41 | | 49 | 6 |
| |
| 56.41% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.38461538461538464 | | totalSentences | 65 | | uniqueOpeners | 25 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 40 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 8 | | totalSentences | 40 | | matches | | 0 | "She liked this seat." | | 1 | "She almost didn't recognize the" | | 2 | "It was the laugh that" | | 3 | "She was laughing at something" | | 4 | "She was already crossing the" | | 5 | "They sat for a moment" | | 6 | "She laughed softly" | | 7 | "She watched her old friend" |
| | ratio | 0.2 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 37 | | totalSentences | 40 | | matches | | 0 | "The Raven's Nest smelled the" | | 1 | "Rory sat at the far" | | 2 | "She liked this seat." | | 3 | "She almost didn't recognize the" | | 4 | "It was the laugh that" | | 5 | "Rory's spine went rigid before" | | 6 | "She was laughing at something" | | 7 | "The name landed like a" | | 8 | "Rory set her glass down" | | 9 | "Bethan's hand flew to her" | | 10 | "She was already crossing the" | | 11 | "Bethan smelled like drugstore perfume" | | 12 | "Rory said, extracting herself gently" | | 13 | "Bethan pulled back and looked" | | 14 | "Bethan gestured vaguely at all" | | 15 | "Rory sat back down, and" | | 16 | "Rory turned her glass a" | | 17 | "Bethan laughed again, that same" | | 18 | "Bethan said it fondly, the" | | 19 | "Rory said, and meant it," |
| | ratio | 0.925 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 40 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 19 | | technicalSentenceCount | 5 | | matches | | 0 | "It was the laugh that did it—a short, bright bark of a sound, quickly swallowed, the kind of laugh that used to echo down the halls of Cardiff University's law …" | | 1 | "Rory almost laughed at that, at the sheer distance between the person Bethan was describing and the woman sitting across from her—the one who delivered noodles …" | | 2 | "Rory studied her friend's hands—unscarred, soft, a hand that had never had to learn to hold a blade steady or count exits in under three seconds—and felt someth…" | | 3 | "Bethan looked at her for a long moment, something uncertain flickering at the corner of her mouth, as if she wanted to ask what Rory meant by that, wanted to re…" | | 4 | "She watched her old friend walk toward the door, toward a man who had just come in shaking rain from his coat, toward a life with a dog and a dull, stable husba…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 19 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 76.83% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 10 | | fancyCount | 3 | | fancyTags | | 0 | "Bethan laughed again (laugh)" | | 1 | "She laughed softly (laugh)" | | 2 | "Rory agreed (agree)" |
| | dialogueSentences | 41 | | tagDensity | 0.244 | | leniency | 0.488 | | rawRatio | 0.3 | | effectiveRatio | 0.146 | |