| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 27 | | adverbTagCount | 1 | | adverbTags | | 0 | "His fingers closed around [around]" |
| | dialogueSentences | 60 | | tagDensity | 0.45 | | leniency | 0.9 | | rawRatio | 0.037 | | effectiveRatio | 0.033 | |
| 94.11% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2545 | | totalAiIsmAdverbs | 3 | | 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) | |
| 84.28% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2545 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "flickered" | | 1 | "weight" | | 2 | "silence" | | 3 | "measured" | | 4 | "unspoken" |
| |
| 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 | 118 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 118 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 151 | | 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 | 2533 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 20 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 30 | | wordCount | 1526 | | uniqueNames | 12 | | maxNameDensity | 0.66 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Raven | 1 | | Nest | 1 | | Soho | 1 | | Carter | 1 | | Cardiff | 1 | | Silas | 8 | | Blackwood | 3 | | Rory | 10 | | Quieter | 1 | | Evan | 1 | | Eva | 1 | | Tube | 1 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Carter" | | 3 | "Silas" | | 4 | "Blackwood" | | 5 | "Rory" | | 6 | "Evan" | | 7 | "Eva" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 45.83% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 96 | | glossingSentenceCount | 4 | | matches | | 0 | "looked like cinema, that Silas Blackwood" | | 1 | "looked like a man always expecting a knoc" | | 2 | "looked like days that had already been de" | | 3 | "felt like years she could almost step a" |
| |
| 81.56% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 3 | | per1kWords | 1.184 | | wordCount | 2533 | | matches | | 0 | "not the barman, not the limp, not the grey-streaked beard, but the younger silhouette" | | 1 | "not the limp, not the grey-streaked beard, but the younger silhouette" | | 2 | "not the grey-streaked beard, but the younger silhouette" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 151 | | matches | | 0 | "tasted that observation" | | 1 | "arguing that some" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 53 | | mean | 47.79 | | std | 31.23 | | cv | 0.653 | | sampleLengths | | 0 | 97 | | 1 | 5 | | 2 | 69 | | 3 | 7 | | 4 | 64 | | 5 | 23 | | 6 | 13 | | 7 | 38 | | 8 | 69 | | 9 | 17 | | 10 | 27 | | 11 | 41 | | 12 | 11 | | 13 | 38 | | 14 | 58 | | 15 | 46 | | 16 | 31 | | 17 | 13 | | 18 | 23 | | 19 | 43 | | 20 | 40 | | 21 | 133 | | 22 | 6 | | 23 | 66 | | 24 | 59 | | 25 | 42 | | 26 | 100 | | 27 | 15 | | 28 | 3 | | 29 | 39 | | 30 | 68 | | 31 | 84 | | 32 | 60 | | 33 | 24 | | 34 | 74 | | 35 | 19 | | 36 | 77 | | 37 | 82 | | 38 | 10 | | 39 | 28 | | 40 | 47 | | 41 | 70 | | 42 | 70 | | 43 | 59 | | 44 | 17 | | 45 | 126 | | 46 | 44 | | 47 | 64 | | 48 | 53 | | 49 | 86 |
| |
| 99.32% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 118 | | matches | | 0 | "been decided" | | 1 | "was sedimented" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 254 | | matches | | 0 | "were searching" | | 1 | "was looking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 3 | | flaggedSentences | 12 | | totalSentences | 151 | | ratio | 0.079 | | matches | | 0 | "She crossed the floor—scarred boards she used to know by heart—and slid onto the stool she had always claimed, third from the left, where the grain of the oak reached out like a handprint." | | 1 | "Rory’s shoulders took it without flinching; she had practiced that." | | 2 | "Rory remembered nights when the bar had been a front for something sharper—men with wet coats and no names, maps spread on the table in the hidden room behind the bookshelf that no one else ever noticed." | | 3 | "“Before you left. After the leg stopped answering properly and the Service offered a desk and a pension and a rehearsed smile. Wanted to tell you the story straight, not the official version. Thought if I got the telling right you wouldn’t look at me the way the others did—like the limp was contagious.” He flexed the fingers of his right hand; the ring turned once." | | 4 | "The jazz started again—someone returning the arm to the vinyl’s first scar." | | 5 | "She opened her eyes and found him still watching, the hazel catching light the way a sniper’s scope did—not aimed, simply precise." | | 6 | "The conversation drifted after that into smaller things—the price of decent tonic, the new landlord three doors down who looked like a man always expecting a knock, the parsley plant’s second chance growth." | | 7 | "At the foot of the narrow stairs that led to the flat above—her flat, still, or his waiting—he stopped." | | 8 | "She saw him whole then—not the barman, not the limp, not the grey-streaked beard, but the younger silhouette that had once moved like certainty through layered cities." | | 9 | "The regret on him was not loud; it was sedimented, dense as old maps." | | 10 | "The green neon outside still sometimes haunted the walls even powered down—muscle memory of light." | | 11 | "It was simply rain—the honest kind that falls on whoever is left standing when the maps are finally folded." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1258 | | adjectiveStacks | 1 | | stackExamples | | 0 | "-ests—oldest operative, deepest cover," |
| | adverbCount | 50 | | adverbRatio | 0.0397456279809221 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.006359300476947536 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 151 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 151 | | mean | 16.77 | | std | 12.57 | | cv | 0.749 | | sampleLengths | | 0 | 30 | | 1 | 29 | | 2 | 2 | | 3 | 36 | | 4 | 5 | | 5 | 10 | | 6 | 14 | | 7 | 19 | | 8 | 26 | | 9 | 3 | | 10 | 4 | | 11 | 27 | | 12 | 15 | | 13 | 7 | | 14 | 15 | | 15 | 18 | | 16 | 5 | | 17 | 8 | | 18 | 5 | | 19 | 14 | | 20 | 15 | | 21 | 9 | | 22 | 6 | | 23 | 34 | | 24 | 8 | | 25 | 17 | | 26 | 4 | | 27 | 17 | | 28 | 23 | | 29 | 4 | | 30 | 20 | | 31 | 21 | | 32 | 4 | | 33 | 7 | | 34 | 9 | | 35 | 10 | | 36 | 15 | | 37 | 4 | | 38 | 22 | | 39 | 36 | | 40 | 8 | | 41 | 22 | | 42 | 16 | | 43 | 14 | | 44 | 17 | | 45 | 5 | | 46 | 8 | | 47 | 10 | | 48 | 13 | | 49 | 7 |
| |
| 57.84% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 1 | | diversityRatio | 0.3509933774834437 | | totalSentences | 151 | | uniqueOpeners | 53 | |
| 91.74% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 109 | | matches | | 0 | "Instead she had followed Evan" | | 1 | "Somewhere a siren tried on" | | 2 | "Somewhere below, bottles clinked as" |
| | ratio | 0.028 | |
| 54.86% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 45 | | totalSentences | 109 | | matches | | 0 | "She pushed the door open." | | 1 | "He looked up." | | 2 | "he said at last, voice" | | 3 | "She let the door swing" | | 4 | "He shifted his weight, the" | | 5 | "She crossed the floor—scarred boards" | | 6 | "His own stayed empty." | | 7 | "she said after a swallow" | | 8 | "He rested both palms on" | | 9 | "She turned the glass, watching" | | 10 | "She met his eyes then," | | 11 | "He picked up another glass" | | 12 | "She hadn’t known he had" | | 13 | "He set the glass down" | | 14 | "She rolled the tumbler between" | | 15 | "She had been twenty then," | | 16 | "He had taught her to" | | 17 | "She had thought she would" | | 18 | "He poured a measure for" | | 19 | "She tasted that observation, let" |
| | ratio | 0.413 | |
| 37.98% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 92 | | totalSentences | 109 | | matches | | 0 | "The green neon sign of" | | 1 | "Aurora Carter paused beneath it" | | 2 | "The last time she had" | | 3 | "She pushed the door open." | | 4 | "The place exhaled the same" | | 5 | "Maps yellowed on the walls," | | 6 | "A single lamp over the" | | 7 | "He looked up." | | 8 | "The glass stopped turning." | | 9 | "Hazel eyes caught the light" | | 10 | "The silver signet ring on" | | 11 | "The low jazz record crackled" | | 12 | "he said at last, voice" | | 13 | "She let the door swing" | | 14 | "A ghost of a smile" | | 15 | "He shifted his weight, the" | | 16 | "She crossed the floor—scarred boards" | | 17 | "The leather of the seat" | | 18 | "Silas poured two fingers of" | | 19 | "His own stayed empty." |
| | ratio | 0.844 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 109 | | matches | (empty) | | ratio | 0 | |
| 71.43% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 60 | | technicalSentenceCount | 6 | | matches | | 0 | "A single lamp over the bar threw long amber shadows that made the empty stools look like jagged teeth." | | 1 | "And there, wiping a glass with the slow economy of a man who had once done far more delicate work with his hands, stood Silas Blackwood." | | 2 | "The low jazz record crackled as if it too were searching for the right key." | | 3 | "She saw him whole then—not the barman, not the limp, not the grey-streaked beard, but the younger silhouette that had once moved like certainty through layered …" | | 4 | "Silas Blackwood still stood at the bottom, limp and signet and all the quiet authority of a man who had stopped running yet remained on the board." | | 5 | "Inside, the air waited, faintly green from the sill, thick with the dust of pages that had outlived one version of her." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 27 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 10 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 60 | | tagDensity | 0.167 | | leniency | 0.333 | | rawRatio | 0 | | effectiveRatio | 0 | |