| 33.33% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 18 | | adverbTagCount | 3 | | adverbTags | | 0 | "Catrin said finally [finally]" | | 1 | "she said again [again]" | | 2 | "Catrin said suddenly [suddenly]" |
| | dialogueSentences | 34 | | tagDensity | 0.529 | | leniency | 1 | | rawRatio | 0.167 | | effectiveRatio | 0.167 | |
| 92.14% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1273 | | totalAiIsmAdverbs | 2 | | 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) | |
| 92.14% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1273 | | totalAiIsms | 2 | | 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 | 57 | | matches | (empty) | |
| 67.67% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 1 | | narrationSentences | 57 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 73 | | 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 | 2 | | markdownWords | 7 | | totalWords | 1280 | | ratio | 0.005 | | matches | | 0 | "no one, no one that matters." | | 1 | "maybe." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 22 | | unquotedAttributions | 0 | | matches | (empty) | |
| 33.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 49 | | wordCount | 980 | | uniqueNames | 12 | | maxNameDensity | 2.04 | | worstName | "Rory" | | maxWindowNameDensity | 4 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 20 | | Old | 1 | | Compton | 1 | | Street | 1 | | Nest | 1 | | Yu-Fei | 1 | | Silas | 4 | | Cardiff | 1 | | Contract | 1 | | Law | 1 | | Catrin | 16 | | Evan | 1 |
| | persons | | 0 | "Rory" | | 1 | "Yu-Fei" | | 2 | "Silas" | | 3 | "Catrin" | | 4 | "Evan" |
| | places | | 0 | "Old" | | 1 | "Compton" | | 2 | "Street" | | 3 | "Cardiff" |
| | globalScore | 0.48 | | windowScore | 0.333 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 38 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.781 | | wordCount | 1280 | | matches | | 0 | "Not unkindly meant, that question, but it landed like a blow all the same" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 73 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 37 | | mean | 34.59 | | std | 28.31 | | cv | 0.818 | | sampleLengths | | 0 | 106 | | 1 | 75 | | 2 | 34 | | 3 | 12 | | 4 | 33 | | 5 | 15 | | 6 | 21 | | 7 | 119 | | 8 | 11 | | 9 | 34 | | 10 | 39 | | 11 | 29 | | 12 | 39 | | 13 | 10 | | 14 | 2 | | 15 | 9 | | 16 | 81 | | 17 | 59 | | 18 | 4 | | 19 | 2 | | 20 | 58 | | 21 | 29 | | 22 | 54 | | 23 | 3 | | 24 | 3 | | 25 | 55 | | 26 | 51 | | 27 | 34 | | 28 | 16 | | 29 | 18 | | 30 | 48 | | 31 | 64 | | 32 | 43 | | 33 | 3 | | 34 | 26 | | 35 | 11 | | 36 | 30 |
| |
| 92.95% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 57 | | matches | | 0 | "being told" | | 1 | "being known" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 177 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 73 | | ratio | 0.082 | | matches | | 0 | "That was the whole of their conversation most nights, and she liked it that way — the economy of it, the absence of questions." | | 1 | "She'd grown into herself — that was the only way Rory could think of it." | | 2 | "She'd seen the news, the way you saw the news of people you'd once known — sideways, secondhand, a name in a colleague's mouth." | | 3 | "Catrin's eyes went over her again, and Rory watched her take it in — the secondhand jacket gone shapeless at the cuffs, the delivery bag at her feet, the hands that used to be a barrister's hands in waiting and were now chapped from cold and from carrying other people's dinners up other people's stairs." | | 4 | "Catrin reached across and touched the back of Rory's wrist — the left one, where the small crescent scar sat pale against the skin, and Rory had the absurd memory of explaining it to her once, the bicycle, the kerb, the summer she was nine." | | 5 | "For a moment Rory let herself feel it — the warmth of being known by someone who'd known her before, before the disappearing, before the version of herself she'd become to survive a man she no longer let herself name." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 975 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 32 | | adverbRatio | 0.03282051282051282 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.006153846153846154 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 73 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 73 | | mean | 17.53 | | std | 15.11 | | cv | 0.862 | | sampleLengths | | 0 | 47 | | 1 | 28 | | 2 | 4 | | 3 | 3 | | 4 | 24 | | 5 | 13 | | 6 | 32 | | 7 | 30 | | 8 | 34 | | 9 | 3 | | 10 | 9 | | 11 | 3 | | 12 | 30 | | 13 | 9 | | 14 | 6 | | 15 | 21 | | 16 | 4 | | 17 | 15 | | 18 | 54 | | 19 | 46 | | 20 | 11 | | 21 | 2 | | 22 | 32 | | 23 | 5 | | 24 | 4 | | 25 | 24 | | 26 | 6 | | 27 | 9 | | 28 | 15 | | 29 | 5 | | 30 | 3 | | 31 | 36 | | 32 | 6 | | 33 | 4 | | 34 | 2 | | 35 | 9 | | 36 | 55 | | 37 | 26 | | 38 | 7 | | 39 | 20 | | 40 | 10 | | 41 | 22 | | 42 | 4 | | 43 | 2 | | 44 | 13 | | 45 | 45 | | 46 | 3 | | 47 | 6 | | 48 | 20 | | 49 | 7 |
| |
| 62.56% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.4246575342465753 | | totalSentences | 73 | | uniqueOpeners | 31 | |
| 69.44% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 48 | | matches | | 0 | "Then she thought of Silas" |
| | ratio | 0.021 | |
| 86.67% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 16 | | totalSentences | 48 | | matches | | 0 | "He nodded to her." | | 1 | "She nodded back." | | 2 | "She'd come down for one" | | 3 | "She took the stool at" | | 4 | "It came out of her" | | 5 | "Her eyes moved across the" | | 6 | "It was a strange question" | | 7 | "She'd grown into herself —" | | 8 | "She put her umbrella across" | | 9 | "It wasn't a guess." | | 10 | "She'd seen the news, the" | | 11 | "She watched Catrin decide not" | | 12 | "She'd never been able to" | | 13 | "She searched for it" | | 14 | "she said again, softer this" | | 15 | "They sat together while the" |
| | ratio | 0.333 | |
| 53.75% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 39 | | totalSentences | 48 | | matches | | 0 | "The rain had followed Rory" | | 1 | "Silas was behind the bar," | | 2 | "He nodded to her." | | 3 | "She nodded back." | | 4 | "That was the whole of" | | 5 | "She'd come down for one" | | 6 | "The delivery bag still smelled" | | 7 | "She took the stool at" | | 8 | "That was when the door" | | 9 | "It came out of her" | | 10 | "The woman stopped." | | 11 | "Her eyes moved across the" | | 12 | "Catrin's hand came up to" | | 13 | "It was a strange question" | | 14 | "Catrin crossed the room." | | 15 | "She'd grown into herself —" | | 16 | "Rory said, because she didn't" | | 17 | "She put her umbrella across" | | 18 | "It wasn't a guess." | | 19 | "She'd seen the news, the" |
| | ratio | 0.813 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 48 | | matches | | | ratio | 0.021 | |
| 40.82% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 28 | | technicalSentenceCount | 4 | | matches | | 0 | "Silas was behind the bar, polishing a glass that did not need polishing, the way he did when the place was empty and he wanted his hands occupied." | | 1 | "At Cardiff she'd been a slight, anxious girl who chewed her cuticles bloody before exams, who borrowed Rory's notes and Rory's confidence in equal measure, who …" | | 2 | "Not unkindly meant, that question, but it landed like a blow all the same, and Silas, who heard everything and acknowledged nothing, drifted to the other end of…" | | 3 | "Catrin's eyes went over her again, and Rory watched her take it in — the secondhand jacket gone shapeless at the cuffs, the delivery bag at her feet, the hands …" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 18 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 91.18% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 13 | | fancyCount | 2 | | fancyTags | | 0 | "Rory lied (lie)" | | 1 | "Catrin agreed (agree)" |
| | dialogueSentences | 34 | | tagDensity | 0.382 | | leniency | 0.765 | | rawRatio | 0.154 | | effectiveRatio | 0.118 | |