| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 30 | | adverbTagCount | 1 | | adverbTags | | 0 | "Rory said quietly [quietly]" |
| | dialogueSentences | 58 | | tagDensity | 0.517 | | leniency | 1 | | rawRatio | 0.033 | | effectiveRatio | 0.033 | |
| 79.25% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1687 | | totalAiIsmAdverbs | 7 | | found | | | highlights | | 0 | "very" | | 1 | "slightly" | | 2 | "carefully" | | 3 | "precisely" | | 4 | "lightly" | | 5 | "quickly" |
| |
| 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) | |
| 94.07% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1687 | | totalAiIsms | 2 | | found | | | highlights | | 0 | "unreadable" | | 1 | "tenderness" |
| |
| 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 | 76 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 0 | | narrationSentences | 76 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 101 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 71 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1707 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 29 | | unquotedAttributions | 0 | | matches | (empty) | |
| 16.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 53 | | wordCount | 1155 | | uniqueNames | 13 | | maxNameDensity | 1.65 | | worstName | "Rory" | | maxWindowNameDensity | 4.5 | | worstWindowName | "Eva" | | discoveredNames | | Rory | 19 | | Dean | 1 | | Street | 2 | | Raven | 1 | | Nest | 1 | | Yu-Fei | 1 | | Silas | 6 | | Prague | 1 | | Eva | 17 | | Golden | 1 | | Empress | 1 | | Queen | 1 | | Cardiff | 1 |
| | persons | | 0 | "Rory" | | 1 | "Raven" | | 2 | "Nest" | | 3 | "Yu-Fei" | | 4 | "Silas" | | 5 | "Eva" | | 6 | "Empress" | | 7 | "Queen" |
| | places | | 0 | "Dean" | | 1 | "Street" | | 2 | "Prague" | | 3 | "Cardiff" |
| | globalScore | 0.677 | | windowScore | 0.167 | |
| 47.96% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 49 | | glossingSentenceCount | 2 | | matches | | 0 | "as if testing a step in the dark" | | 1 | "not quite leaving" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1707 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 101 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 55 | | mean | 31.04 | | std | 28.37 | | cv | 0.914 | | sampleLengths | | 0 | 72 | | 1 | 95 | | 2 | 3 | | 3 | 29 | | 4 | 14 | | 5 | 102 | | 6 | 12 | | 7 | 55 | | 8 | 3 | | 9 | 15 | | 10 | 37 | | 11 | 3 | | 12 | 16 | | 13 | 57 | | 14 | 57 | | 15 | 2 | | 16 | 23 | | 17 | 6 | | 18 | 7 | | 19 | 47 | | 20 | 55 | | 21 | 5 | | 22 | 11 | | 23 | 5 | | 24 | 118 | | 25 | 23 | | 26 | 5 | | 27 | 59 | | 28 | 7 | | 29 | 23 | | 30 | 8 | | 31 | 67 | | 32 | 11 | | 33 | 62 | | 34 | 5 | | 35 | 51 | | 36 | 2 | | 37 | 32 | | 38 | 4 | | 39 | 65 | | 40 | 25 | | 41 | 41 | | 42 | 14 | | 43 | 49 | | 44 | 53 | | 45 | 24 | | 46 | 21 | | 47 | 6 | | 48 | 73 | | 49 | 23 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 76 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 187 | | matches | | 0 | "was sitting" | | 1 | "was counting" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 101 | | ratio | 0.079 | | matches | | 0 | "Three containers of beef chow fun, no coriander, no spring onion — Yu-Fei's handwriting looping across the ticket in that sharp impatient hand she reserved for Silas, who tipped well and never, in four years, ordered anything else." | | 1 | "Her hair was dark — its own colour, whatever its own colour had been — cut blunt at the jaw." | | 2 | "Her eyes were the same eyes — a warm, slightly cross dark brown — and her face had been pared down around them, the old blunt prettiness worn to something quieter and harder-won." | | 3 | "And they were both smiling, and it was the wrong smile — too bright, too careful — the smile of people who have been rehearsing for years the possibility of this and got none of it right." | | 4 | "Somewhere beyond the shelf the bar had gone quiet — closing time, the soft clink of Silas stacking glasses." | | 5 | "They stayed another twenty minutes after that, trading the small currency of lives lived apart — a grandmother's house sold, a mother's class, the arcade on Queen Street finally gutted — and when they came out of the back room the bar was dark and empty and Silas was counting the till under the green neon, which threw its light up into the maps and made all the coastlines look like underwater things." | | 6 | "Rory smiled — the real one, this time, unforced and a little raw." | | 7 | "Eva laughed — surprised out of her, entirely, the sound of a girl on a rooftop in Cardiff — and turned into the street." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1148 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 38 | | adverbRatio | 0.033101045296167246 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.008710801393728223 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 101 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 101 | | mean | 16.9 | | std | 15.25 | | cv | 0.902 | | sampleLengths | | 0 | 34 | | 1 | 38 | | 2 | 32 | | 3 | 14 | | 4 | 24 | | 5 | 25 | | 6 | 3 | | 7 | 29 | | 8 | 14 | | 9 | 47 | | 10 | 20 | | 11 | 35 | | 12 | 12 | | 13 | 4 | | 14 | 33 | | 15 | 11 | | 16 | 7 | | 17 | 3 | | 18 | 2 | | 19 | 13 | | 20 | 37 | | 21 | 3 | | 22 | 16 | | 23 | 45 | | 24 | 12 | | 25 | 57 | | 26 | 2 | | 27 | 3 | | 28 | 6 | | 29 | 7 | | 30 | 7 | | 31 | 6 | | 32 | 5 | | 33 | 2 | | 34 | 22 | | 35 | 13 | | 36 | 12 | | 37 | 10 | | 38 | 43 | | 39 | 2 | | 40 | 5 | | 41 | 8 | | 42 | 3 | | 43 | 5 | | 44 | 4 | | 45 | 17 | | 46 | 54 | | 47 | 43 | | 48 | 4 | | 49 | 19 |
| |
| 54.13% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 12 | | diversityRatio | 0.39603960396039606 | | totalSentences | 101 | | uniqueOpeners | 40 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 62 | | matches | | 0 | "Then, carefully, as if testing" | | 1 | "Somewhere beyond the shelf the" |
| | ratio | 0.032 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 15 | | totalSentences | 62 | | matches | | 0 | "He looked up, nodded at" | | 1 | "It was the woman at" | | 2 | "She was sitting alone under" | | 3 | "Her hair was dark —" | | 4 | "She held the glass a" | | 5 | "Her eyes were the same" | | 6 | "She unfastened the coat after" | | 7 | "She set her glass down" | | 8 | "She flexed her hand" | | 9 | "She turned the glass again" | | 10 | "She said it lightly, but" | | 11 | "She looked up" | | 12 | "She took out her phone" | | 13 | "Their fingers touched on the" | | 14 | "They stayed another twenty minutes" |
| | ratio | 0.242 | |
| 48.71% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 51 | | totalSentences | 62 | | matches | | 0 | "The insulated bag had gone" | | 1 | "Silas was behind the bar" | | 2 | "He looked up, nodded at" | | 3 | "Rory said, and set the" | | 4 | "It was the woman at" | | 5 | "She was sitting alone under" | | 6 | "Her hair was dark —" | | 7 | "She held the glass a" | | 8 | "Rory stood very still with" | | 9 | "The woman looked up." | | 10 | "Her eyes were the same" | | 11 | "A plain band on her" | | 12 | "Rory said, and they stopped," | | 13 | "Silas, who had been loading" | | 14 | "The bookshelf behind him swung" | | 15 | "She unfastened the coat after" | | 16 | "Rory said, and it came" | | 17 | "The crescent scar on her" | | 18 | "Eva turned her glass a" | | 19 | "Eva's mouth did something complicated" |
| | ratio | 0.823 | |
| 80.65% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 62 | | matches | | | ratio | 0.016 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 30 | | technicalSentenceCount | 6 | | matches | | 0 | "Three containers of beef chow fun, no coriander, no spring onion — Yu-Fei's handwriting looping across the ticket in that sharp impatient hand she reserved for …" | | 1 | "Inside, the usual low weather of the place: old beer and floor polish and the dry papery smell of the maps that papered every wall, their coastlines gone brown …" | | 2 | "It was the woman at the end of the bar who made her pause." | | 3 | "She was sitting alone under the widest of the photographs, a pint's distance from nobody, with a glass of tonic and lime in front of her and a wool coat still b…" | | 4 | "And they were both smiling, and it was the wrong smile — too bright, too careful — the smile of people who have been rehearsing for years the possibility of thi…" | | 5 | "They stayed another twenty minutes after that, trading the small currency of lives lived apart — a grandmother's house sold, a mother's class, the arcade on Que…" |
| |
| 91.67% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 30 | | uselessAdditionCount | 2 | | matches | | 0 | "She said, but her eyes had gone warm and appraising, travelling over Rory's face, the black hair cut practical and straight, the delivery bag with Golden Empress printed on it still slung on the back of her chair" | | 1 | "Eva said, not letting go" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 19 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 58 | | tagDensity | 0.328 | | leniency | 0.655 | | rawRatio | 0 | | effectiveRatio | 0 | |