| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 16 | | adverbTagCount | 2 | | adverbTags | | 0 | "he said instead [instead]" | | 1 | "he said finally [finally]" |
| | dialogueSentences | 43 | | tagDensity | 0.372 | | leniency | 0.744 | | rawRatio | 0.125 | | effectiveRatio | 0.093 | |
| 64.22% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1118 | | totalAiIsmAdverbs | 8 | | found | | | highlights | | 0 | "gently" | | 1 | "carefully" | | 2 | "very" | | 3 | "quickly" | | 4 | "slowly" | | 5 | "tenderly" | | 6 | "really" |
| |
| 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) | |
| 77.64% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1118 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "whisper" | | 1 | "eyebrow" | | 2 | "could feel" | | 3 | "weight" |
| |
| 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 | 71 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 71 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 97 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 55 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 9 | | totalWords | 1132 | | ratio | 0.008 | | matches | | 0 | "this is a load of old bollocks, isn't it," |
| |
| 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 | 21 | | wordCount | 868 | | uniqueNames | 11 | | maxNameDensity | 0.81 | | worstName | "Silas" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Silas" | | discoveredNames | | Raven | 1 | | Nest | 1 | | Silas | 7 | | Billie | 1 | | Holiday | 1 | | Gaulle | 2 | | Algiers | 1 | | Cardiff | 1 | | Hart | 1 | | Daniel | 4 | | Eva | 1 |
| | persons | | 0 | "Silas" | | 1 | "Billie" | | 2 | "Holiday" | | 3 | "Hart" | | 4 | "Daniel" | | 5 | "Eva" |
| | places | | 0 | "Raven" | | 1 | "Algiers" | | 2 | "Cardiff" |
| | globalScore | 1 | | windowScore | 1 | |
| 36.36% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 44 | | glossingSentenceCount | 2 | | matches | | 0 | "quite wash away" | | 1 | "he life he was visibly living" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.883 | | wordCount | 1132 | | matches | | 0 | "not as nostalgia but as weight, the weight of the life she had been supposed to h" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 97 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 44 | | mean | 25.73 | | std | 25.87 | | cv | 1.005 | | sampleLengths | | 0 | 113 | | 1 | 11 | | 2 | 77 | | 3 | 68 | | 4 | 6 | | 5 | 37 | | 6 | 74 | | 7 | 18 | | 8 | 9 | | 9 | 44 | | 10 | 35 | | 11 | 16 | | 12 | 42 | | 13 | 13 | | 14 | 42 | | 15 | 9 | | 16 | 4 | | 17 | 3 | | 18 | 3 | | 19 | 11 | | 20 | 9 | | 21 | 62 | | 22 | 4 | | 23 | 1 | | 24 | 10 | | 25 | 12 | | 26 | 6 | | 27 | 49 | | 28 | 65 | | 29 | 15 | | 30 | 3 | | 31 | 5 | | 32 | 5 | | 33 | 44 | | 34 | 32 | | 35 | 2 | | 36 | 25 | | 37 | 5 | | 38 | 6 | | 39 | 61 | | 40 | 17 | | 41 | 38 | | 42 | 7 | | 43 | 14 |
| |
| 95.38% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 71 | | matches | | 0 | "been supposed" | | 1 | "being asked" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 8 | | totalVerbs | 152 | | matches | | 0 | "was rubbing" | | 1 | "was sitting" | | 2 | "was pretending" | | 3 | "was looking" | | 4 | "was visibly living" | | 5 | "was wearing" | | 6 | "was wearing" | | 7 | "was already reaching" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 2 | | flaggedSentences | 9 | | totalSentences | 97 | | ratio | 0.093 | | matches | | 0 | "Aurora paused under it, shaking water from her jacket, and pushed into the Raven's Nest like she'd done a hundred times in the past eight months — coming down from her flat above with the easy slouch of someone who lived over the shop." | | 1 | "A navy overcoat folded over the stool beside him, not thrown — folded, carefully, the way you fold something you paid too much for." | | 2 | "Then he turned his head — he must have felt the looking — and smiled, and it was the same smile, the one from the common room at Cardiff, the one that used to lean across a seminar table and whisper, *this is a load of old bollocks, isn't it,* about some poor lecturer's take on Hart." | | 3 | "He'd always been tall; now he carried it differently, like he'd grown into the height instead of apologizing for it." | | 4 | "He poured without a word and moved off again, back to his bottle-counting, which fooled no one — least of all her." | | 5 | "At the little crescent scar there — the one from the garden gate when she was seven and he had known the story of because she'd told him, third week of first year, both of them very drunk on bad cider in his halls." | | 6 | "His smile held, then slipped, then reassembled itself into something kinder and more careful, and that was the moment she felt the years in the room — not as nostalgia but as weight, the weight of the life she had been supposed to have and the life he was visibly living." | | 7 | "Perhaps he already knew; perhaps Eva had said something years ago that he'd filed away and was only now pulling out of a drawer." | | 8 | "She thought — uselessly, tenderly — how strange it was that the architecture of her life had acquired secret doors while Daniel's had only acquired cufflinks." |
| |
| 91.90% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 693 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 34 | | adverbRatio | 0.049062049062049064 | | lyAdverbCount | 14 | | lyAdverbRatio | 0.020202020202020204 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 97 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 97 | | mean | 11.67 | | std | 11.28 | | cv | 0.967 | | sampleLengths | | 0 | 16 | | 1 | 44 | | 2 | 29 | | 3 | 13 | | 4 | 11 | | 5 | 11 | | 6 | 20 | | 7 | 7 | | 8 | 24 | | 9 | 7 | | 10 | 4 | | 11 | 15 | | 12 | 9 | | 13 | 2 | | 14 | 57 | | 15 | 3 | | 16 | 3 | | 17 | 9 | | 18 | 18 | | 19 | 5 | | 20 | 5 | | 21 | 2 | | 22 | 20 | | 23 | 22 | | 24 | 30 | | 25 | 11 | | 26 | 7 | | 27 | 9 | | 28 | 8 | | 29 | 5 | | 30 | 1 | | 31 | 2 | | 32 | 28 | | 33 | 25 | | 34 | 3 | | 35 | 7 | | 36 | 9 | | 37 | 7 | | 38 | 11 | | 39 | 26 | | 40 | 5 | | 41 | 3 | | 42 | 10 | | 43 | 3 | | 44 | 22 | | 45 | 17 | | 46 | 5 | | 47 | 4 | | 48 | 4 | | 49 | 3 |
| |
| 56.01% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.3917525773195876 | | totalSentences | 97 | | uniqueOpeners | 38 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 60 | | matches | | 0 | "Somewhere behind the bar, Billie" | | 1 | "Then he turned his head" | | 2 | "Perhaps he already knew; perhaps" | | 3 | "Somewhere behind the shelves of" |
| | ratio | 0.067 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 37 | | totalSentences | 60 | | matches | | 0 | "She was halfway to her" | | 1 | "He was sitting at the" | | 2 | "His hair was shorter than" | | 3 | "Her voice came out thinner" | | 4 | "She glanced, instinctively, toward the" | | 5 | "He did not look up." | | 6 | "He was good like that." | | 7 | "He'd always been tall; now" | | 8 | "He crossed the floor in" | | 9 | "She was aware, absurdly, of" | | 10 | "He had a new laugh." | | 11 | "She said it too quickly," | | 12 | "He didn't push." | | 13 | "he said instead" | | 14 | "She slid onto the stool" | | 15 | "He poured without a word" | | 16 | "She could feel him listening" | | 17 | "He lifted his tumbler." | | 18 | "It always was." | | 19 | "He was looking at her" |
| | ratio | 0.617 | |
| 26.67% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 52 | | totalSentences | 60 | | matches | | 0 | "The green neon bled across" | | 1 | "Aurora paused under it, shaking" | | 2 | "The smell met her first:" | | 3 | "The maps on the walls" | | 4 | "She was halfway to her" | | 5 | "He was sitting at the" | | 6 | "A tumbler in front of" | | 7 | "A navy overcoat folded over" | | 8 | "His hair was shorter than" | | 9 | "A watch on his wrist" | | 10 | "Her voice came out thinner" | | 11 | "She glanced, instinctively, toward the" | | 12 | "He did not look up." | | 13 | "He was good like that." | | 14 | "He'd always been tall; now" | | 15 | "He crossed the floor in" | | 16 | "She was aware, absurdly, of" | | 17 | "He had a new laugh." | | 18 | "She said it too quickly," | | 19 | "He didn't push." |
| | ratio | 0.867 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 60 | | matches | (empty) | | ratio | 0 | |
| 85.71% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 25 | | technicalSentenceCount | 2 | | matches | | 0 | "Aurora paused under it, shaking water from her jacket, and pushed into the Raven's Nest like she'd done a hundred times in the past eight months — coming down f…" | | 1 | "A watch on his wrist that caught the light when he reached for his glass." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 16 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 10 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 43 | | tagDensity | 0.233 | | leniency | 0.465 | | rawRatio | 0.1 | | effectiveRatio | 0.047 | |