| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 10 | | adverbTagCount | 1 | | adverbTags | | 0 | "She gestured vaguely [vaguely]" |
| | dialogueSentences | 53 | | tagDensity | 0.189 | | leniency | 0.377 | | rawRatio | 0.1 | | effectiveRatio | 0.038 | |
| 95.30% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1064 | | totalAiIsmAdverbs | 1 | | found | | | highlights | | |
| 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) | |
| 76.50% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1064 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "comfortable" | | 1 | "familiar" | | 2 | "efficient" | | 3 | "traced" |
| |
| 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 | 1 | | hedgeCount | 0 | | narrationSentences | 71 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 112 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 44 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1068 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 42 | | wordCount | 767 | | uniqueNames | 9 | | maxNameDensity | 2.22 | | worstName | "Rory" | | maxWindowNameDensity | 5 | | worstWindowName | "Rory" | | discoveredNames | | Raven | 1 | | Nest | 1 | | Tuesday | 1 | | Fleetwood | 2 | | Mac | 2 | | Silas | 6 | | Rory | 17 | | Priya | 11 | | Cardiff | 1 |
| | persons | | 0 | "Raven" | | 1 | "Mac" | | 2 | "Silas" | | 3 | "Rory" | | 4 | "Priya" |
| | places | | | globalScore | 0.392 | | windowScore | 0 | |
| 33.72% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 43 | | glossingSentenceCount | 2 | | matches | | 0 | "d been running visibly paused" | | 1 | "quite name" |
| |
| 12.73% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.873 | | wordCount | 1068 | | matches | | 0 | "Not out of habit, exactly, but because she liked the draught" | | 1 | "Not pity exactly, but its more careful cousin" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 112 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 61 | | mean | 17.51 | | std | 19.35 | | cv | 1.105 | | sampleLengths | | 0 | 84 | | 1 | 80 | | 2 | 12 | | 3 | 17 | | 4 | 86 | | 5 | 10 | | 6 | 1 | | 7 | 36 | | 8 | 13 | | 9 | 48 | | 10 | 23 | | 11 | 9 | | 12 | 3 | | 13 | 22 | | 14 | 13 | | 15 | 1 | | 16 | 4 | | 17 | 4 | | 18 | 29 | | 19 | 5 | | 20 | 10 | | 21 | 2 | | 22 | 47 | | 23 | 5 | | 24 | 2 | | 25 | 5 | | 26 | 29 | | 27 | 5 | | 28 | 14 | | 29 | 20 | | 30 | 2 | | 31 | 7 | | 32 | 28 | | 33 | 3 | | 34 | 19 | | 35 | 9 | | 36 | 9 | | 37 | 13 | | 38 | 1 | | 39 | 2 | | 40 | 38 | | 41 | 3 | | 42 | 2 | | 43 | 14 | | 44 | 4 | | 45 | 14 | | 46 | 20 | | 47 | 27 | | 48 | 2 | | 49 | 13 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 71 | | matches | | |
| 41.27% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 126 | | matches | | 0 | "weren't looking" | | 1 | "was picking" | | 2 | "was thinking" |
| |
| 40.82% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 5 | | semicolonCount | 0 | | flaggedSentences | 4 | | totalSentences | 112 | | ratio | 0.036 | | matches | | 0 | "Not dead — it never quite managed dead — but quiet enough that the jukebox in the corner was audible, some old Fleetwood Mac record that Silas kept in rotation because he claimed it was good for business and refused to elaborate on what that meant." | | 1 | "Rory recognised her in the way you recognise a word you've forgotten how to pronounce — the shape of it familiar, the sound just slightly wrong." | | 2 | "\"Deliver, technically.\" She gestured vaguely at herself — the jacket, the courier bag slouched against the bar leg." | | 3 | "Her eyes hadn't changed — dark, steady, the kind that made you feel like you were being read rather than seen." |
| |
| 89.64% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 733 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 38 | | adverbRatio | 0.05184174624829468 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.01637107776261937 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 112 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 112 | | mean | 9.54 | | std | 8.09 | | cv | 0.849 | | sampleLengths | | 0 | 8 | | 1 | 46 | | 2 | 30 | | 3 | 13 | | 4 | 26 | | 5 | 5 | | 6 | 36 | | 7 | 12 | | 8 | 6 | | 9 | 11 | | 10 | 26 | | 11 | 1 | | 12 | 14 | | 13 | 14 | | 14 | 5 | | 15 | 26 | | 16 | 10 | | 17 | 1 | | 18 | 23 | | 19 | 13 | | 20 | 5 | | 21 | 5 | | 22 | 3 | | 23 | 25 | | 24 | 23 | | 25 | 4 | | 26 | 4 | | 27 | 15 | | 28 | 7 | | 29 | 2 | | 30 | 3 | | 31 | 18 | | 32 | 4 | | 33 | 4 | | 34 | 8 | | 35 | 1 | | 36 | 1 | | 37 | 4 | | 38 | 4 | | 39 | 2 | | 40 | 23 | | 41 | 4 | | 42 | 5 | | 43 | 10 | | 44 | 2 | | 45 | 13 | | 46 | 4 | | 47 | 5 | | 48 | 12 | | 49 | 13 |
| |
| 57.44% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.39285714285714285 | | totalSentences | 112 | | uniqueOpeners | 44 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 63 | | matches | | 0 | "Then she landed on Rory," | | 1 | "Almost a smile." | | 2 | "Then at the ceiling." |
| | ratio | 0.048 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 16 | | totalSentences | 63 | | matches | | 0 | "Her jacket was still on." | | 1 | "Her helmet sat on the" | | 2 | "She was picking at a" | | 3 | "It took a full three" | | 4 | "He moved toward the regulars" | | 5 | "She didn't rush it." | | 6 | "She stopped just short of" | | 7 | "She gestured vaguely at herself" | | 8 | "She flagged Silas with a" | | 9 | "He was always watching." | | 10 | "She nodded once, like this" | | 11 | "Her eyes hadn't changed —" | | 12 | "It had gone cold." | | 13 | "Her thumbnail traced a small" | | 14 | "She had a habit of" | | 15 | "She turned on her stool" |
| | ratio | 0.254 | |
| 79.05% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 48 | | totalSentences | 63 | | matches | | 0 | "The Raven's Nest was quiet" | | 1 | "A couple of regulars occupied" | | 2 | "Rory had taken up her" | | 3 | "Her jacket was still on." | | 4 | "Her helmet sat on the" | | 5 | "She was picking at a" | | 6 | "The draught came in, as" | | 7 | "Rory recognised her in the" | | 8 | "A coat that cost more" | | 9 | "The posture was different too." | | 10 | "Something deliberate about the way" | | 11 | "It took a full three" | | 12 | "The woman's eyes tracked across" | | 13 | "Something in between." | | 14 | "Silas appeared from the back" | | 15 | "He moved toward the regulars" | | 16 | "Priya crossed the bar." | | 17 | "She didn't rush it." | | 18 | "She stopped just short of" | | 19 | "Rory moved it to the" |
| | ratio | 0.762 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 63 | | matches | (empty) | | ratio | 0 | |
| 66.33% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 28 | | technicalSentenceCount | 3 | | matches | | 0 | "The woman's eyes tracked across the bar with the automatic assessment of someone who'd trained herself to clock exits before she clocked faces." | | 1 | "He moved toward the regulars at the far end with the unhurried authority of a man who understood when not to be present." | | 2 | "International consultancy, she'd say, with a smile that acknowledged the vagueness without apologising for it." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 10 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 53 | | tagDensity | 0.094 | | leniency | 0.189 | | rawRatio | 0 | | effectiveRatio | 0 | |