| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 11 | | adverbTagCount | 1 | | adverbTags | | 0 | "Eva says quietly [quietly]" |
| | dialogueSentences | 38 | | tagDensity | 0.289 | | leniency | 0.579 | | rawRatio | 0.091 | | effectiveRatio | 0.053 | |
| 94.27% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 872 | | totalAiIsmAdverbs | 1 | | found | | | 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) | |
| 59.86% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 872 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "weight" | | 1 | "tracing" | | 2 | "dance" | | 3 | "tension" | | 4 | "familiar" | | 5 | "perfect" |
| |
| 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 | 58 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 58 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 84 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 42 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 864 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 15 | | unquotedAttributions | 0 | | matches | (empty) | |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 40 | | wordCount | 585 | | uniqueNames | 5 | | maxNameDensity | 3.42 | | worstName | "Rory" | | maxWindowNameDensity | 5 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 20 | | Brick | 1 | | Lane | 1 | | Saturday | 1 | | Eva | 17 |
| | persons | | | places | | | globalScore | 0 | | windowScore | 0 | |
| 74.24% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 33 | | glossingSentenceCount | 1 | | matches | | 0 | "something between anger and relief" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 864 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 84 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 45 | | mean | 19.2 | | std | 14.52 | | cv | 0.756 | | sampleLengths | | 0 | 39 | | 1 | 1 | | 2 | 30 | | 3 | 8 | | 4 | 43 | | 5 | 9 | | 6 | 32 | | 7 | 8 | | 8 | 29 | | 9 | 20 | | 10 | 49 | | 11 | 7 | | 12 | 12 | | 13 | 42 | | 14 | 1 | | 15 | 3 | | 16 | 4 | | 17 | 5 | | 18 | 40 | | 19 | 12 | | 20 | 7 | | 21 | 34 | | 22 | 16 | | 23 | 14 | | 24 | 11 | | 25 | 4 | | 26 | 19 | | 27 | 41 | | 28 | 14 | | 29 | 28 | | 30 | 44 | | 31 | 12 | | 32 | 35 | | 33 | 35 | | 34 | 3 | | 35 | 4 | | 36 | 28 | | 37 | 8 | | 38 | 2 | | 39 | 37 | | 40 | 15 | | 41 | 33 | | 42 | 7 | | 43 | 14 | | 44 | 5 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 58 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 105 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 84 | | ratio | 0.071 | | matches | | 0 | "Outside, Brick Lane hums with its usual Saturday chaos—tourists snapping photos, the smell of jerk chicken drifting from the stall below, a busker's violin sawing at something that sounds like heartbreak." | | 1 | "Eva turns, and Rory sees it—the way her shoulders tense, the way her jaw tightens." | | 2 | "She knows that look—the one that says Eva's about to drop the bomb she's been carrying for months." | | 3 | "Then she says it—the thing that cracks Rory's composure wide open." | | 4 | "Rory's vision blurs, colours bleeding together until all she can focus on is Eva's face—steady, unflinching, the way she used to look at her when they were kids and Rory would convince her to skip class and explore the city instead." | | 5 | "But maybe—just maybe—that's exactly what they need." |
| |
| 87.78% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 593 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 32 | | adverbRatio | 0.05396290050590219 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.006745362563237774 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 84 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 84 | | mean | 10.29 | | std | 8.19 | | cv | 0.796 | | sampleLengths | | 0 | 39 | | 1 | 1 | | 2 | 5 | | 3 | 17 | | 4 | 5 | | 5 | 3 | | 6 | 8 | | 7 | 15 | | 8 | 12 | | 9 | 16 | | 10 | 9 | | 11 | 5 | | 12 | 22 | | 13 | 5 | | 14 | 6 | | 15 | 2 | | 16 | 24 | | 17 | 5 | | 18 | 7 | | 19 | 13 | | 20 | 3 | | 21 | 3 | | 22 | 12 | | 23 | 31 | | 24 | 7 | | 25 | 12 | | 26 | 15 | | 27 | 4 | | 28 | 23 | | 29 | 1 | | 30 | 3 | | 31 | 4 | | 32 | 5 | | 33 | 17 | | 34 | 23 | | 35 | 12 | | 36 | 7 | | 37 | 3 | | 38 | 18 | | 39 | 13 | | 40 | 5 | | 41 | 11 | | 42 | 4 | | 43 | 10 | | 44 | 11 | | 45 | 4 | | 46 | 9 | | 47 | 9 | | 48 | 1 | | 49 | 19 |
| |
| 76.59% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.4880952380952381 | | totalSentences | 84 | | uniqueOpeners | 41 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 57 | | matches | | 0 | "Then she says it—the thing" | | 1 | "Just like old times." |
| | ratio | 0.035 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 8 | | totalSentences | 57 | | matches | | 0 | "She steps inside, boots clicking" | | 1 | "She kicks off her boots," | | 2 | "She steps toward the window," | | 3 | "They used to dance around" | | 4 | "She knows that look—the one" | | 5 | "She grips the edge of" | | 6 | "They stay like that for" | | 7 | "Her thumbs brush away the" |
| | ratio | 0.14 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 41 | | totalSentences | 57 | | matches | | 0 | "The door swings open before" | | 1 | "Eva doesn't bother with pretense." | | 2 | "She steps inside, boots clicking" | | 3 | "Rory looks up from whatever" | | 4 | "The same bright blue eyes," | | 5 | "The same crescent scar on" | | 6 | "Eva laughs, low and dangerous." | | 7 | "She kicks off her boots," | | 8 | "Rory's fingers freeze over the" | | 9 | "Eva moves deeper into the" | | 10 | "Rory stands, chair scraping back" | | 11 | "The jab lands." | | 12 | "Eva's smile flickers." | | 13 | "She steps toward the window," | | 14 | "Eva turns, and Rory sees" | | 15 | "They used to dance around" | | 16 | "Rory doesn't move." | | 17 | "Eva crosses her arms, the" | | 18 | "Rory's breath hitches." | | 19 | "She knows that look—the one" |
| | ratio | 0.719 | |
| 87.72% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 57 | | matches | | 0 | "Now the stakes are higher," |
| | ratio | 0.018 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 20 | | technicalSentenceCount | 1 | | matches | | 0 | "Outside, Brick Lane hums with its usual Saturday chaos—tourists snapping photos, the smell of jerk chicken drifting from the stall below, a busker's violin sawi…" |
| |
| 79.55% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 11 | | uselessAdditionCount | 1 | | matches | | 0 | "Eva's voice drops, dangerous" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 1 | | fancyTags | | 0 | "Rory whispers (whisper)" |
| | dialogueSentences | 38 | | tagDensity | 0.053 | | leniency | 0.105 | | rawRatio | 0.5 | | effectiveRatio | 0.053 | |