| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 15 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 48 | | tagDensity | 0.313 | | leniency | 0.625 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 64.43% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1265 | | totalAiIsmAdverbs | 9 | | found | | | highlights | | 0 | "very" | | 1 | "slowly" | | 2 | "precisely" | | 3 | "slightly" | | 4 | "suddenly" |
| |
| 100.00% | AI-ism character names | Target: 0 AI-default names (17 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 84.19% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1265 | | totalAiIsms | 4 | | found | | | highlights | | 0 | "stomach" | | 1 | "silence" | | 2 | "charm" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "stomach dropped/sank" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 39 | | matches | (empty) | |
| 69.60% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 39 | | filterMatches | (empty) | | hedgeMatches | | 0 | "started to" | | 1 | "tended to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 72 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 72 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1277 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 24 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 17 | | wordCount | 876 | | uniqueNames | 6 | | maxNameDensity | 0.57 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 5 | | Ptolemy | 3 | | Moreau | 1 | | Eva | 3 | | Lucien | 4 | | London | 1 |
| | persons | | 0 | "Rory" | | 1 | "Ptolemy" | | 2 | "Moreau" | | 3 | "Eva" | | 4 | "Lucien" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 30 | | glossingSentenceCount | 2 | | matches | | 0 | "not quite managing it" | | 1 | "lowed to show, apparently, because that would" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1277 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 72 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 47 | | mean | 27.17 | | std | 27.63 | | cv | 1.017 | | sampleLengths | | 0 | 71 | | 1 | 7 | | 2 | 60 | | 3 | 16 | | 4 | 9 | | 5 | 36 | | 6 | 6 | | 7 | 4 | | 8 | 12 | | 9 | 51 | | 10 | 70 | | 11 | 3 | | 12 | 2 | | 13 | 50 | | 14 | 1 | | 15 | 13 | | 16 | 3 | | 17 | 44 | | 18 | 1 | | 19 | 7 | | 20 | 14 | | 21 | 22 | | 22 | 78 | | 23 | 5 | | 24 | 10 | | 25 | 1 | | 26 | 88 | | 27 | 5 | | 28 | 63 | | 29 | 4 | | 30 | 3 | | 31 | 6 | | 32 | 8 | | 33 | 81 | | 34 | 15 | | 35 | 4 | | 36 | 21 | | 37 | 38 | | 38 | 6 | | 39 | 43 | | 40 | 45 | | 41 | 22 | | 42 | 76 | | 43 | 4 | | 44 | 70 | | 45 | 6 | | 46 | 73 |
| |
| 78.27% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 39 | | matches | | 0 | "was gone" | | 1 | "was gone" | | 2 | "was gone" |
| |
| 37.40% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 164 | | matches | | 0 | "was closing" | | 1 | "was standing" | | 2 | "was doing" | | 3 | "was, unmistakably, hoping" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 1 | | flaggedSentences | 7 | | totalSentences | 72 | | ratio | 0.097 | | matches | | 0 | "His amber eye caught the hall light; the black one swallowed it whole." | | 1 | "He caught it with the cane before it latched, not forcing it, just holding it open the way he held everything — with the absolute confidence that force would never be necessary." | | 2 | "He came in slowly, taking in the flat the way he took in everything — cataloguing it." | | 3 | "\"It counts to me.\" He looked at her then, properly, and something in his expression cracked open for half a second before he smoothed it back into that unbothered, amused mask he wore like the suit — tailored, expensive, impenetrable." | | 4 | "She wanted, more than that, and more shamefully, to close the space between them and put her head against his chest the way she used to when the world got too loud and he was — inexplicably, infuriatingly — the quiet in it." | | 5 | "\"Good instinct.\" He picked up a scroll from the windowsill, unrolled an inch of it, found nothing of interest, and set it back precisely where he'd found it — a habit she remembered, that meticulous returning of things to their place, as if disorder physically pained him." | | 6 | "Then he was gone, down the stairs, past the shuttered curry house, out into a London night that suddenly felt considerably less safe than it had an hour ago — and Rory stood in the doorway a long moment before she slid the bolts home, one, two, three, and leaned her forehead against the cool wood, furious at herself for the thing her heart was doing, which was, unmistakably, hoping he'd knock again." |
| |
| 73.35% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 872 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 59 | | adverbRatio | 0.0676605504587156 | | lyAdverbCount | 20 | | lyAdverbRatio | 0.022935779816513763 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 72 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 72 | | mean | 17.74 | | std | 16.86 | | cv | 0.95 | | sampleLengths | | 0 | 29 | | 1 | 4 | | 2 | 38 | | 3 | 7 | | 4 | 47 | | 5 | 13 | | 6 | 16 | | 7 | 9 | | 8 | 32 | | 9 | 4 | | 10 | 6 | | 11 | 4 | | 12 | 12 | | 13 | 51 | | 14 | 17 | | 15 | 53 | | 16 | 3 | | 17 | 2 | | 18 | 29 | | 19 | 21 | | 20 | 1 | | 21 | 13 | | 22 | 3 | | 23 | 40 | | 24 | 4 | | 25 | 1 | | 26 | 7 | | 27 | 14 | | 28 | 13 | | 29 | 9 | | 30 | 7 | | 31 | 43 | | 32 | 4 | | 33 | 24 | | 34 | 5 | | 35 | 10 | | 36 | 1 | | 37 | 47 | | 38 | 41 | | 39 | 3 | | 40 | 2 | | 41 | 43 | | 42 | 20 | | 43 | 4 | | 44 | 3 | | 45 | 6 | | 46 | 8 | | 47 | 5 | | 48 | 33 | | 49 | 43 |
| |
| 81.02% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.5277777777777778 | | totalSentences | 72 | | uniqueOpeners | 38 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 35 | | matches | | 0 | "Somewhere below, the curry house" | | 1 | "Then he was gone, down" |
| | ratio | 0.057 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 22 | | totalSentences | 35 | | matches | | 0 | "It was gone eleven." | | 1 | "She should have listened to" | | 2 | "His amber eye caught the" | | 3 | "he said, like her name" | | 4 | "she said, and started to" | | 5 | "He caught it with the" | | 6 | "He came in slowly, taking" | | 7 | "He set the cane against" | | 8 | "He looked at her then," | | 9 | "His voice dropped, lost some" | | 10 | "She wanted to throw something" | | 11 | "She wanted, more than that," | | 12 | "She settled for staying exactly" | | 13 | "He picked up a scroll" | | 14 | "Her stomach dropped." | | 15 | "He looked up, and the" | | 16 | "she said, quieter than she" | | 17 | "His jaw tightened." | | 18 | "he agreed, and something in" | | 19 | "She laughed, once, without much" |
| | ratio | 0.629 | |
| 45.71% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 29 | | totalSentences | 35 | | matches | | 0 | "The third deadbolt stuck the" | | 1 | "It was gone eleven." | | 2 | "Eva was at the shop" | | 3 | "She should have listened to" | | 4 | "Lucien Moreau stood in the" | | 5 | "His amber eye caught the" | | 6 | "he said, like her name" | | 7 | "she said, and started to" | | 8 | "He caught it with the" | | 9 | "He came in slowly, taking" | | 10 | "Books stacked on the radiator," | | 11 | "He set the cane against" | | 12 | "He looked at her then," | | 13 | "His voice dropped, lost some" | | 14 | "She wanted to throw something" | | 15 | "She wanted, more than that," | | 16 | "Neither urge was acceptable." | | 17 | "She settled for staying exactly" | | 18 | "He picked up a scroll" | | 19 | "Her stomach dropped." |
| | ratio | 0.829 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 35 | | matches | (empty) | | ratio | 0 | |
| 16.81% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 17 | | technicalSentenceCount | 3 | | matches | | 0 | "Eva was at the shop till midnight restocking shelves that didn't need restocking, and Ptolemy had been yowling at the window for the better part of an hour like…" | | 1 | "Lucien Moreau stood in the narrow hallway with his ivory-handled cane resting against one shoulder, platinum hair combed back without a strand out of place, as …" | | 2 | "For a man who traded in other people's secrets for a living, he was remarkably bad at parting with his own." |
| |
| 91.67% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 15 | | uselessAdditionCount | 1 | | matches | | 0 | "He looked up, and the flippancy was gone entirely now, scraped away to something that looked almost like fear, on a face that she'd never once seen afraid" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 48 | | tagDensity | 0.167 | | leniency | 0.333 | | rawRatio | 0.125 | | effectiveRatio | 0.042 | |