| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said softly [softly]" |
| | dialogueSentences | 30 | | tagDensity | 0.433 | | leniency | 0.867 | | rawRatio | 0.077 | | effectiveRatio | 0.067 | |
| 86.49% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1480 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "slightly" | | 1 | "utterly" | | 2 | "softly" |
| |
| 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) | |
| 25.68% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1480 | | totalAiIsms | 22 | | found | | | highlights | | 0 | "electric" | | 1 | "comforting" | | 2 | "weight" | | 3 | "sanctuary" | | 4 | "scanned" | | 5 | "dancing" | | 6 | "familiar" | | 7 | "lilt" | | 8 | "pulse" | | 9 | "silence" | | 10 | "comfortable" | | 11 | "flicker" | | 12 | "profound" | | 13 | "sense of" | | 14 | "efficient" | | 15 | "warmth" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 73 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 73 | | filterMatches | (empty) | | hedgeMatches | | 0 | "managed to" | | 1 | "seemed to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 90 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 38 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1472 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 10 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 28 | | wordCount | 1144 | | uniqueNames | 11 | | maxNameDensity | 0.87 | | worstName | "Julian" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Julian" | | discoveredNames | | Raven | 1 | | Nest | 1 | | Aurora | 6 | | Soho | 2 | | London | 2 | | Golden | 1 | | Empress | 1 | | Julian | 10 | | Florence | 1 | | Cardiff | 2 | | Evan | 1 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Aurora" | | 3 | "Julian" | | 4 | "Evan" |
| | places | | 0 | "Soho" | | 1 | "London" | | 2 | "Golden" | | 3 | "Florence" | | 4 | "Cardiff" |
| | globalScore | 1 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 60 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1472 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 90 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 35 | | mean | 42.06 | | std | 24.13 | | cv | 0.574 | | sampleLengths | | 0 | 70 | | 1 | 76 | | 2 | 62 | | 3 | 5 | | 4 | 69 | | 5 | 19 | | 6 | 31 | | 7 | 86 | | 8 | 24 | | 9 | 43 | | 10 | 42 | | 11 | 52 | | 12 | 73 | | 13 | 67 | | 14 | 27 | | 15 | 61 | | 16 | 45 | | 17 | 40 | | 18 | 71 | | 19 | 26 | | 20 | 34 | | 21 | 87 | | 22 | 29 | | 23 | 11 | | 24 | 21 | | 25 | 49 | | 26 | 5 | | 27 | 2 | | 28 | 22 | | 29 | 51 | | 30 | 39 | | 31 | 32 | | 32 | 1 | | 33 | 33 | | 34 | 67 |
| |
| 81.23% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 5 | | totalSentences | 73 | | matches | | 0 | "being perceived" | | 1 | "was gone" | | 2 | "was carved" | | 3 | "was practiced" | | 4 | "was replaced" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 184 | | matches | | 0 | "was sitting" | | 1 | "was already moving" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 1 | | flaggedSentences | 7 | | totalSentences | 90 | | ratio | 0.078 | | matches | | 0 | "She pulled her collar up against the London drizzle, her fingers brushing the small, crescent-shaped scar on her left wrist—a nervous habit she’d never quite managed to break." | | 1 | "Even from the back, the posture was familiar—a certain rigidity in the shoulders that spoke of a man who spent a lot of time being watched." | | 2 | "He didn't turn immediately; instead, he set the glass down with a precision that felt rehearsed." | | 3 | "It was Julian, but the version of Julian she had carried in her memory—the boy with the easy, lopsided grin and the perpetually messy blonde hair who had promised to study architecture in Florence—was gone." | | 4 | "She knew the reputation of the man who owned this establishment—the quiet authority, the way he moved with a slight limp that commanded respect rather than pity." | | 5 | "A flicker of the old Julian—the boy who used to share his headphones with her on the bus, the boy who had cried when he failed his first anatomy exam—pierced through the steel." | | 6 | "She felt the weight of the years, the staggering, cumulative gravity of every choice made in the dark, and the quiet, devastating realization that some ghosts don't haunt houses—they haunt the people we used to be." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1158 | | adjectiveStacks | 1 | | stackExamples | | 0 | "small, crescent-shaped scar" |
| | adverbCount | 38 | | adverbRatio | 0.03281519861830743 | | lyAdverbCount | 17 | | lyAdverbRatio | 0.01468048359240069 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 90 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 90 | | mean | 16.36 | | std | 9.2 | | cv | 0.562 | | sampleLengths | | 0 | 20 | | 1 | 22 | | 2 | 28 | | 3 | 15 | | 4 | 21 | | 5 | 20 | | 6 | 20 | | 7 | 19 | | 8 | 29 | | 9 | 14 | | 10 | 5 | | 11 | 23 | | 12 | 26 | | 13 | 20 | | 14 | 19 | | 15 | 3 | | 16 | 16 | | 17 | 12 | | 18 | 35 | | 19 | 11 | | 20 | 11 | | 21 | 29 | | 22 | 3 | | 23 | 21 | | 24 | 11 | | 25 | 32 | | 26 | 7 | | 27 | 3 | | 28 | 9 | | 29 | 10 | | 30 | 13 | | 31 | 6 | | 32 | 33 | | 33 | 13 | | 34 | 21 | | 35 | 36 | | 36 | 16 | | 37 | 29 | | 38 | 38 | | 39 | 6 | | 40 | 11 | | 41 | 10 | | 42 | 8 | | 43 | 26 | | 44 | 27 | | 45 | 2 | | 46 | 30 | | 47 | 13 | | 48 | 16 | | 49 | 24 |
| |
| 47.41% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.34444444444444444 | | totalSentences | 90 | | uniqueOpeners | 31 | |
| 49.02% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 68 | | matches | | 0 | "Instead, he signaled the bartender" |
| | ratio | 0.015 | |
| 8.24% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 36 | | totalSentences | 68 | | matches | | 0 | "It cast a sickly, emerald" | | 1 | "She pulled her collar up" | | 2 | "It was a subterranean sanctuary," | | 3 | "She wasn't supposed to be" | | 4 | "She just wanted to disappear" | | 5 | "He was sitting at the" | | 6 | "He didn't turn immediately; instead," | | 7 | "It was Julian, but the" | | 8 | "His face had lost its" | | 9 | "His voice had deepened, losing" | | 10 | "she managed, sliding onto the" | | 11 | "She felt acutely aware of" | | 12 | "He didn't smile." | | 13 | "He didn't even reach out" | | 14 | "He simply stared at the" | | 15 | "He took a sip of" | | 16 | "His eyes, once bright and" | | 17 | "She thought of Evan, of" | | 18 | "He leaned in slightly, the" | | 19 | "she countered, her voice sharpening" |
| | ratio | 0.529 | |
| 26.18% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 59 | | totalSentences | 68 | | matches | | 0 | "The green neon sign of" | | 1 | "It cast a sickly, emerald" | | 2 | "She pulled her collar up" | | 3 | "The bell above the heavy" | | 4 | "The air in the bar" | | 5 | "It was a subterranean sanctuary," | | 6 | "Aurora scanned the dim interior," | | 7 | "She wasn't supposed to be" | | 8 | "The delivery bag was still" | | 9 | "She just wanted to disappear" | | 10 | "He was sitting at the" | | 11 | "the name left her lips" | | 12 | "The man froze." | | 13 | "He didn't turn immediately; instead," | | 14 | "It was Julian, but the" | | 15 | "The man sitting before her" | | 16 | "His face had lost its" | | 17 | "His voice had deepened, losing" | | 18 | "she managed, sliding onto the" | | 19 | "She felt acutely aware of" |
| | ratio | 0.868 | |
| 73.53% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 68 | | matches | | 0 | "Even from the back, the" |
| | ratio | 0.015 | |
| 31.75% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 45 | | technicalSentenceCount | 7 | | matches | | 0 | "Even from the back, the posture was familiar—a certain rigidity in the shoulders that spoke of a man who spent a lot of time being watched." | | 1 | "He didn't turn immediately; instead, he set the glass down with a precision that felt rehearsed." | | 2 | "It was Julian, but the version of Julian she had carried in her memory—the boy with the easy, lopsided grin and the perpetually messy blonde hair who had promis…" | | 3 | "His voice had deepened, losing the melodic lilt of their youth, replaced by a clipped, neutral tone that felt entirely foreign." | | 4 | "The silence that followed was not the comfortable silence of their university days, when they would sit for hours in the Cardiff libraries, dreaming of lives th…" | | 5 | "His eyes, once bright and inquisitive, were now guarded, looking at her as if she were a puzzle he no longer had the interest to solve." | | 6 | "She knew the reputation of the man who owned this establishment—the quiet authority, the way he moved with a slight limp that commanded respect rather than pity…" |
| |
| 48.08% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 2 | | matches | | 0 | "He leaned, the amber light catching the hard line of his jaw" | | 1 | "she countered, her voice sharpening" |
| |
| 83.33% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 2 | | fancyTags | | 0 | "she lied (lie)" | | 1 | "she whispered (whisper)" |
| | dialogueSentences | 30 | | tagDensity | 0.267 | | leniency | 0.533 | | rawRatio | 0.25 | | effectiveRatio | 0.133 | |