| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 24 | | adverbTagCount | 1 | | adverbTags | | 0 | "Tom said finally [finally]" |
| | dialogueSentences | 51 | | tagDensity | 0.471 | | leniency | 0.941 | | rawRatio | 0.042 | | effectiveRatio | 0.039 | |
| 78.96% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1426 | | totalAiIsmAdverbs | 6 | | found | | | highlights | | 0 | "slightly" | | 1 | "slowly" | | 2 | "very" | | 3 | "helplessly" | | 4 | "lightly" |
| |
| 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) | |
| 89.48% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1426 | | totalAiIsms | 3 | | found | | | highlights | | |
| 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 | 63 | | matches | (empty) | |
| 97.51% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 0 | | narrationSentences | 63 | | filterMatches | | | hedgeMatches | (empty) | |
| 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 | 90 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1435 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 23 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 31 | | wordCount | 905 | | uniqueNames | 15 | | maxNameDensity | 0.66 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Tom" | | discoveredNames | | Rory | 6 | | Frith | 1 | | Street | 1 | | Raven | 2 | | Nest | 2 | | Tuesdays | 1 | | Weller | 1 | | Cardiff | 1 | | Tŷ | 1 | | Cwm | 1 | | Silas | 5 | | Adriatic | 1 | | Scheldt | 1 | | Tom | 6 | | Soho | 1 |
| | persons | | 0 | "Rory" | | 1 | "Raven" | | 2 | "Weller" | | 3 | "Tŷ" | | 4 | "Cwm" | | 5 | "Silas" | | 6 | "Tom" |
| | places | | 0 | "Frith" | | 1 | "Street" | | 2 | "Cardiff" | | 3 | "Soho" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 40 | | 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 | 1435 | | 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 | 45 | | mean | 31.89 | | std | 31.22 | | cv | 0.979 | | sampleLengths | | 0 | 80 | | 1 | 46 | | 2 | 10 | | 3 | 5 | | 4 | 18 | | 5 | 2 | | 6 | 82 | | 7 | 4 | | 8 | 6 | | 9 | 125 | | 10 | 5 | | 11 | 12 | | 12 | 50 | | 13 | 44 | | 14 | 4 | | 15 | 4 | | 16 | 17 | | 17 | 3 | | 18 | 65 | | 19 | 19 | | 20 | 12 | | 21 | 19 | | 22 | 18 | | 23 | 19 | | 24 | 56 | | 25 | 50 | | 26 | 60 | | 27 | 5 | | 28 | 109 | | 29 | 107 | | 30 | 15 | | 31 | 10 | | 32 | 54 | | 33 | 70 | | 34 | 20 | | 35 | 25 | | 36 | 8 | | 37 | 30 | | 38 | 25 | | 39 | 8 | | 40 | 12 | | 41 | 39 | | 42 | 2 | | 43 | 13 | | 44 | 48 |
| |
| 94.12% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 63 | | matches | | 0 | "was dotted" | | 1 | "being asked" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 146 | | matches | | 0 | "was reaching" | | 1 | "was digging" |
| |
| 15.87% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 0 | | flaggedSentences | 4 | | totalSentences | 90 | | ratio | 0.044 | | matches | | 0 | "She was digging in her bag for her phone, and it was only when she heard the voice — that voice, pitched low and a little too careful, the way people speak when they've rehearsed their own casualness — that her hand went still inside the bag." | | 1 | "The lanky boy from the Cardiff halls who'd once climbed the fire escape of the Tŷ Cwm dormitory at two in the morning to throw pebbles at her window — he'd been carrying a thermos of his mother's cawl and a borrowed portable radio so they could listen to the football — this man had filled out, hardened." | | 2 | "He touched his eyebrow, laughed — a short, embarrassed sound." | | 3 | "The man in the corner booth paid his bill and left, and the door let in another wash of rain, and then the bar was theirs alone, just the two of them and the maps on the walls — the Adriatic, the Scheldt, places where other people's histories had happened." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 762 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 20 | | adverbRatio | 0.026246719160104987 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.009186351706036745 | |
| 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 | 15.94 | | std | 16.55 | | cv | 1.038 | | sampleLengths | | 0 | 32 | | 1 | 15 | | 2 | 9 | | 3 | 5 | | 4 | 19 | | 5 | 46 | | 6 | 10 | | 7 | 5 | | 8 | 16 | | 9 | 2 | | 10 | 2 | | 11 | 29 | | 12 | 6 | | 13 | 47 | | 14 | 4 | | 15 | 3 | | 16 | 3 | | 17 | 21 | | 18 | 58 | | 19 | 28 | | 20 | 7 | | 21 | 11 | | 22 | 3 | | 23 | 2 | | 24 | 9 | | 25 | 3 | | 26 | 29 | | 27 | 21 | | 28 | 11 | | 29 | 18 | | 30 | 15 | | 31 | 4 | | 32 | 4 | | 33 | 10 | | 34 | 7 | | 35 | 3 | | 36 | 18 | | 37 | 7 | | 38 | 16 | | 39 | 24 | | 40 | 10 | | 41 | 9 | | 42 | 7 | | 43 | 5 | | 44 | 19 | | 45 | 18 | | 46 | 14 | | 47 | 5 | | 48 | 6 | | 49 | 50 |
| |
| 65.93% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.45555555555555555 | | totalSentences | 90 | | uniqueOpeners | 41 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 53 | | matches | | 0 | "Just stating it, the way" | | 1 | "Somewhere down the street a" |
| | ratio | 0.038 | |
| 31.32% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 25 | | totalSentences | 53 | | matches | | 0 | "She shook out her umbrella," | | 1 | "He set the glass down" | | 2 | "He was reaching for the" | | 3 | "She was digging in her" | | 4 | "She looked up." | | 5 | "He wore a charcoal coat" | | 6 | "His hair had thinned at" | | 7 | "Her voice came out steady," | | 8 | "He retreated to the cellar" | | 9 | "He looked at her the" | | 10 | "He touched his eyebrow, laughed" | | 11 | "He wrapped his hand around" | | 12 | "His wedding ring caught the" | | 13 | "She noticed, and noticed him" | | 14 | "She smiled despite herself" | | 15 | "He shook his head slowly" | | 16 | "he said, and then, immediately," | | 17 | "They were quiet for a" | | 18 | "She looked at him, and" | | 19 | "She studied his face" |
| | ratio | 0.472 | |
| 35.47% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 45 | | totalSentences | 53 | | matches | | 0 | "The rain had followed Rory" | | 1 | "A man nursing a pint" | | 2 | "The hiss of the taps." | | 3 | "Silas behind the bar, polishing" | | 4 | "She shook out her umbrella," | | 5 | "Silas said without looking up" | | 6 | "He set the glass down" | | 7 | "He was reaching for the" | | 8 | "Rory didn't look up at" | | 9 | "She was digging in her" | | 10 | "The voice stopped." | | 11 | "She looked up." | | 12 | "Tom Weller stood in the" | | 13 | "The lanky boy from the" | | 14 | "He wore a charcoal coat" | | 15 | "His hair had thinned at" | | 16 | "Her voice came out steady," | | 17 | "Silas, without being asked, drew" | | 18 | "He retreated to the cellar" | | 19 | "Tom sat down heavily, as" |
| | ratio | 0.849 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 53 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 24 | | technicalSentenceCount | 5 | | matches | | 0 | "Silas behind the bar, polishing a glass with the unhurried attention of a man who listened with his hands." | | 1 | "The lanky boy from the Cardiff halls who'd once climbed the fire escape of the Tŷ Cwm dormitory at two in the morning to throw pebbles at her window — he'd been…" | | 2 | "He wore a charcoal coat that fit him too well and had the pallor of someone who spent his days under fluorescent lights or no lights at all." | | 3 | "He retreated to the cellar steps with the discretion of a man who had spent thirty years knowing when to disappear." | | 4 | "Somewhere down the street a bus sighed past, its lights sweeping the window and taking the green with it for a second." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 24 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 14 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 51 | | tagDensity | 0.275 | | leniency | 0.549 | | rawRatio | 0.071 | | effectiveRatio | 0.039 | |