| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 4 | | adverbTags | | 0 | "he said softly [softly]" | | 1 | "she said finally [finally]" | | 2 | "he said quietly [quietly]" | | 3 | "she said suddenly [suddenly]" |
| | dialogueSentences | 31 | | tagDensity | 0.419 | | leniency | 0.839 | | rawRatio | 0.308 | | effectiveRatio | 0.258 | |
| 88.87% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1348 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "softly" | | 1 | "really" | | 2 | "suddenly" |
| |
| 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) | |
| 48.07% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1348 | | totalAiIsms | 14 | | found | | | highlights | | 0 | "silence" | | 1 | "throbbed" | | 2 | "flicker" | | 3 | "weight" | | 4 | "eyebrow" | | 5 | "whisper" | | 6 | "efficient" | | 7 | "reminder" | | 8 | "unspoken" |
| |
| 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 | 52 | | matches | (empty) | |
| 32.97% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 2 | | narrationSentences | 52 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 70 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 65 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 1 | | totalWords | 1345 | | ratio | 0.001 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 17 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 31 | | wordCount | 774 | | uniqueNames | 15 | | maxNameDensity | 0.9 | | worstName | "Aurora" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Aurora" | | discoveredNames | | Raven | 1 | | Nest | 3 | | Aurora | 7 | | Old | 1 | | Pulteney | 1 | | Evan | 2 | | Silas | 7 | | Agatha | 1 | | Christie | 1 | | Cardiff | 2 | | Hadrian | 1 | | Wall | 1 | | Underground | 1 | | Eva | 1 | | Glencairn | 1 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Aurora" | | 3 | "Evan" | | 4 | "Silas" | | 5 | "Agatha" | | 6 | "Christie" | | 7 | "Hadrian" | | 8 | "Eva" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 94.44% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 45 | | glossingSentenceCount | 1 | | matches | | 0 | "felt like another language now, one she" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1345 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 70 | | matches | (empty) | |
| 98.39% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 27 | | mean | 49.81 | | std | 24.63 | | cv | 0.494 | | sampleLengths | | 0 | 117 | | 1 | 67 | | 2 | 28 | | 3 | 30 | | 4 | 56 | | 5 | 70 | | 6 | 32 | | 7 | 86 | | 8 | 48 | | 9 | 6 | | 10 | 41 | | 11 | 55 | | 12 | 48 | | 13 | 47 | | 14 | 28 | | 15 | 21 | | 16 | 80 | | 17 | 27 | | 18 | 76 | | 19 | 65 | | 20 | 28 | | 21 | 77 | | 22 | 43 | | 23 | 71 | | 24 | 32 | | 25 | 46 | | 26 | 20 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 52 | | matches | (empty) | |
| 93.33% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 125 | | matches | | 0 | "was timing" | | 1 | "was carrying" |
| |
| 61.22% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 3 | | semicolonCount | 0 | | flaggedSentences | 2 | | totalSentences | 70 | | ratio | 0.029 | | matches | | 0 | "Behind the bar, a stack of pint glasses glistened in the dim light, but her thoughts were elsewhere—on the delivery bike waiting outside, on the three lost packages she still hadn’t tracked, on the way her left wrist throbbed where a thin scar curled like a crescent moon under her sleeve." | | 1 | "She watched a flicker of something—regret, perhaps—settle into the lines of his face." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 781 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 29 | | adverbRatio | 0.03713188220230474 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.015364916773367477 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 70 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 70 | | mean | 19.21 | | std | 12.44 | | cv | 0.648 | | sampleLengths | | 0 | 10 | | 1 | 25 | | 2 | 15 | | 3 | 16 | | 4 | 51 | | 5 | 14 | | 6 | 26 | | 7 | 27 | | 8 | 16 | | 9 | 12 | | 10 | 10 | | 11 | 20 | | 12 | 30 | | 13 | 26 | | 14 | 15 | | 15 | 30 | | 16 | 12 | | 17 | 13 | | 18 | 12 | | 19 | 20 | | 20 | 35 | | 21 | 13 | | 22 | 38 | | 23 | 8 | | 24 | 19 | | 25 | 21 | | 26 | 6 | | 27 | 27 | | 28 | 14 | | 29 | 11 | | 30 | 31 | | 31 | 13 | | 32 | 13 | | 33 | 7 | | 34 | 28 | | 35 | 8 | | 36 | 16 | | 37 | 23 | | 38 | 10 | | 39 | 18 | | 40 | 9 | | 41 | 12 | | 42 | 10 | | 43 | 37 | | 44 | 33 | | 45 | 10 | | 46 | 17 | | 47 | 12 | | 48 | 10 | | 49 | 54 |
| |
| 86.67% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 1 | | diversityRatio | 0.5285714285714286 | | totalSentences | 70 | | uniqueOpeners | 37 | |
| 65.36% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 51 | | matches | | 0 | "Somewhere beneath the city’s exhale," |
| | ratio | 0.02 | |
| 16.08% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 26 | | totalSentences | 51 | | matches | | 0 | "It was just after midnight," | | 1 | "He paused in the doorway" | | 2 | "His signet ring caught the" | | 3 | "he said, his voice a" | | 4 | "He limped closer, the scent" | | 5 | "She glanced up, catching the" | | 6 | "It was the same look" | | 7 | "she said, nodding to the" | | 8 | "His fingers tapped the bar," | | 9 | "Her mother had written to" | | 10 | "He raised an eyebrow, the" | | 11 | "she said, grinning despite herself" | | 12 | "he said softly" | | 13 | "She froze, her thumb hovering" | | 14 | "she said finally" | | 15 | "He studied her, the line" | | 16 | "She’d walked to Eva that" | | 17 | "she said, the words too" | | 18 | "he said quietly" | | 19 | "She hurled the damp cloth" |
| | ratio | 0.51 | |
| 9.02% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 46 | | totalSentences | 51 | | matches | | 0 | "The Raven’s Nest smelled faintly" | | 1 | "Aurora swiped a damp cloth" | | 2 | "The neon green sign outside" | | 3 | "It was just after midnight," | | 4 | "Silas emerged from the back" | | 5 | "He paused in the doorway" | | 6 | "His signet ring caught the" | | 7 | "he said, his voice a" | | 8 | "Aurora snorted, wiping under the" | | 9 | "He limped closer, the scent" | | 10 | "She glanced up, catching the" | | 11 | "It was the same look" | | 12 | "Silas had said nothing, just" | | 13 | "she said, nodding to the" | | 14 | "Silas lowered himself onto a" | | 15 | "His fingers tapped the bar," | | 16 | "The mention of her surname" | | 17 | "Her mother had written to" | | 18 | "Aurora had let the envelopes" | | 19 | "He raised an eyebrow, the" |
| | ratio | 0.902 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 51 | | matches | (empty) | | ratio | 0 | |
| 96.77% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 31 | | technicalSentenceCount | 2 | | matches | | 0 | "It was just after midnight, the kind of hour that made silence feel louder than music." | | 1 | "She’d walked to Eva that night with her blood on the tiles, but never once told Silas about the man who’d once used her thesis on ancient trade routes to plot t…" |
| |
| 48.08% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 2 | | matches | | 0 | "he said, his voice a gravelly drawl" | | 1 | "she said, the words too sharp" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 31 | | tagDensity | 0.29 | | leniency | 0.581 | | rawRatio | 0.111 | | effectiveRatio | 0.065 | |