| 64.41% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 21 | | adverbTagCount | 4 | | adverbTags | | 0 | "Megan's perfume smelled like [like]" | | 1 | "She stopped visibly [visibly]" | | 2 | "Megan's voice cracked just [just]" | | 3 | "Megan laughed wetly [wetly]" |
| | dialogueSentences | 59 | | tagDensity | 0.356 | | leniency | 0.712 | | rawRatio | 0.19 | | effectiveRatio | 0.136 | |
| 80.81% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1303 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "carefully" | | 1 | "very" | | 2 | "slightly" | | 3 | "really" | | 4 | "precisely" |
| |
| 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) | |
| 80.81% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1303 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "silk" | | 1 | "resolve" | | 2 | "scanning" | | 3 | "silence" | | 4 | "absolutely" |
| |
| 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 | 54 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 54 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 92 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 63 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1294 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 16 | | unquotedAttributions | 1 | | matches | | 0 | "The bar noise moved around them—glasses, low laughter, Silas saying something dry to a regular." |
| |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 42 | | wordCount | 669 | | uniqueNames | 8 | | maxNameDensity | 2.69 | | worstName | "Megan" | | maxWindowNameDensity | 5.5 | | worstWindowName | "Megan" | | discoveredNames | | Aurora | 14 | | Raven | 1 | | Nest | 1 | | October | 1 | | Evan | 1 | | Silas | 5 | | Megan | 18 | | Rioja | 1 |
| | persons | | 0 | "Aurora" | | 1 | "Raven" | | 2 | "Evan" | | 3 | "Silas" | | 4 | "Megan" |
| | places | | | globalScore | 0.155 | | windowScore | 0 | |
| 14.86% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 37 | | glossingSentenceCount | 2 | | matches | | 0 | "smelled like money and airports" | | 1 | "She stopped, visibly rearranging her own" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1294 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 92 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 50 | | mean | 25.88 | | std | 23.95 | | cv | 0.926 | | sampleLengths | | 0 | 71 | | 1 | 16 | | 2 | 3 | | 3 | 55 | | 4 | 3 | | 5 | 37 | | 6 | 17 | | 7 | 26 | | 8 | 33 | | 9 | 31 | | 10 | 7 | | 11 | 43 | | 12 | 1 | | 13 | 27 | | 14 | 7 | | 15 | 2 | | 16 | 18 | | 17 | 33 | | 18 | 8 | | 19 | 35 | | 20 | 24 | | 21 | 6 | | 22 | 3 | | 23 | 3 | | 24 | 49 | | 25 | 7 | | 26 | 24 | | 27 | 5 | | 28 | 20 | | 29 | 5 | | 30 | 25 | | 31 | 29 | | 32 | 3 | | 33 | 46 | | 34 | 8 | | 35 | 81 | | 36 | 79 | | 37 | 18 | | 38 | 4 | | 39 | 3 | | 40 | 94 | | 41 | 34 | | 42 | 71 | | 43 | 14 | | 44 | 5 | | 45 | 29 | | 46 | 59 | | 47 | 6 | | 48 | 8 | | 49 | 59 |
| |
| 92.27% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 54 | | matches | | 0 | "being said" | | 1 | "were gone" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 120 | | matches | (empty) | |
| 49.69% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 3 | | semicolonCount | 0 | | flaggedSentences | 3 | | totalSentences | 92 | | ratio | 0.033 | | matches | | 0 | "And underneath it all, the girl who'd once driven forty minutes at two in the morning because Aurora had a panic attack before her contract law exam, who'd sat on the floor of the student union toilets holding her hair back, who'd promised—we'll be old ladies together, we'll have adjacent bungalows and fight about the hedge." | | 1 | "The bar noise moved around them—glasses, low laughter, Silas saying something dry to a regular." | | 2 | "Aurora recited her number, and Megan typed it in with shaking thumbs, and the candle burned down a quarter inch, and neither of them said the thing that lay beneath everything else—that the years were gone, and no phone call, however overdue, would bring them back, and that this was precisely why the next ones had to be made." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 676 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 22 | | adverbRatio | 0.03254437869822485 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.010355029585798817 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 92 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 92 | | mean | 14.07 | | std | 13.49 | | cv | 0.959 | | sampleLengths | | 0 | 24 | | 1 | 30 | | 2 | 17 | | 3 | 16 | | 4 | 3 | | 5 | 13 | | 6 | 2 | | 7 | 26 | | 8 | 14 | | 9 | 3 | | 10 | 22 | | 11 | 15 | | 12 | 7 | | 13 | 10 | | 14 | 13 | | 15 | 13 | | 16 | 18 | | 17 | 15 | | 18 | 9 | | 19 | 22 | | 20 | 7 | | 21 | 21 | | 22 | 16 | | 23 | 6 | | 24 | 1 | | 25 | 8 | | 26 | 19 | | 27 | 7 | | 28 | 2 | | 29 | 3 | | 30 | 12 | | 31 | 3 | | 32 | 18 | | 33 | 15 | | 34 | 5 | | 35 | 3 | | 36 | 9 | | 37 | 26 | | 38 | 7 | | 39 | 9 | | 40 | 8 | | 41 | 1 | | 42 | 5 | | 43 | 3 | | 44 | 3 | | 45 | 6 | | 46 | 15 | | 47 | 28 | | 48 | 7 | | 49 | 3 |
| |
| 70.65% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.45652173913043476 | | totalSentences | 92 | | uniqueOpeners | 42 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 47 | | matches | | 0 | "Then the laugh settled and" | | 1 | "Then Megan straightened, wiped under" |
| | ratio | 0.043 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 8 | | totalSentences | 47 | | matches | | 0 | "She had finished her last" | | 1 | "She was halfway to her" | | 2 | "It took a full three" | | 3 | "She gave him a small" | | 4 | "She stopped, visibly rearranging her" | | 5 | "She searched for the honest" | | 6 | "They sat like that while" | | 7 | "She looked up, and there" |
| | ratio | 0.17 | |
| 13.19% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 42 | | totalSentences | 47 | | matches | | 0 | "The green neon buzzed against" | | 1 | "She had finished her last" | | 2 | "She was halfway to her" | | 3 | "The voice hit some deep" | | 4 | "The woman was tall, willowy," | | 5 | "It took a full three" | | 6 | "Megan crossed the floor in" | | 7 | "Aurora's mouth had gone dry" | | 8 | "Megan's perfume smelled like money" | | 9 | "Silas caught Aurora's eye from" | | 10 | "She gave him a small" | | 11 | "Megan ordered two glasses of" | | 12 | "Megan laughed, and for a" | | 13 | "Megan tilted her head" | | 14 | "The wine arrived." | | 15 | "Silas set the glasses down" | | 16 | "Megan said, already turning back" | | 17 | "Aurora watched Silas walk away" | | 18 | "Megan waved it off" | | 19 | "Aurora turned her glass by" |
| | ratio | 0.894 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 47 | | matches | (empty) | | ratio | 0 | |
| 71.43% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 20 | | technicalSentenceCount | 2 | | matches | | 0 | "The woman was tall, willowy, copper hair cut into a sharp bob that must have cost eighty quid, wearing a camel coat over a silk blouse." | | 1 | "And underneath it all, the girl who'd once driven forty minutes at two in the morning because Aurora had a panic attack before her contract law exam, who'd sat …" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 21 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 6 | | fancyCount | 2 | | fancyTags | | 0 | "Megan laughed (laugh)" | | 1 | "Megan laughed wetly (laugh)" |
| | dialogueSentences | 59 | | tagDensity | 0.102 | | leniency | 0.203 | | rawRatio | 0.333 | | effectiveRatio | 0.068 | |