| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2086 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 66.44% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2086 | | totalAiIsms | 14 | | found | | | highlights | | 0 | "pulse" | | 1 | "porcelain" | | 2 | "scanning" | | 3 | "warmth" | | 4 | "silk" | | 5 | "chilled" | | 6 | "measured" | | 7 | "comfortable" | | 8 | "coded" | | 9 | "crystal" | | 10 | "gleaming" |
| |
| 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 | 59 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 59 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 111 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 67 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 2081 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 12 | | unquotedAttributions | 0 | | matches | (empty) | |
| 50.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 64 | | wordCount | 1128 | | uniqueNames | 22 | | maxNameDensity | 1.68 | | worstName | "Rory" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Rory" | | discoveredNames | | Soho | 1 | | Raven | 1 | | Nest | 1 | | Sichuan | 1 | | Gerrard | 1 | | Street | 1 | | Rory | 19 | | October | 1 | | Prague | 1 | | Temple | 1 | | Inns | 1 | | Court | 1 | | Silas | 8 | | Cordura | 1 | | Nia | 18 | | Checkpoint | 1 | | Charlie | 1 | | Baltic | 1 | | Sea | 1 | | Golden | 1 | | Empress | 1 | | Cardiff | 1 |
| | persons | | 0 | "Nest" | | 1 | "Rory" | | 2 | "Silas" | | 3 | "Nia" | | 4 | "Checkpoint" | | 5 | "Charlie" |
| | places | | 0 | "Soho" | | 1 | "Raven" | | 2 | "Sichuan" | | 3 | "Gerrard" | | 4 | "Street" | | 5 | "Prague" | | 6 | "Golden" | | 7 | "Cardiff" |
| | globalScore | 0.658 | | windowScore | 0.5 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 58 | | glossingSentenceCount | 1 | | matches | | 0 | "as if sitting meant committing to a jurisdiction she hadn't vetted" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 2081 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 111 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 85 | | mean | 24.48 | | std | 18.85 | | cv | 0.77 | | sampleLengths | | 0 | 40 | | 1 | 70 | | 2 | 4 | | 3 | 88 | | 4 | 18 | | 5 | 51 | | 6 | 4 | | 7 | 8 | | 8 | 41 | | 9 | 80 | | 10 | 19 | | 11 | 1 | | 12 | 48 | | 13 | 39 | | 14 | 1 | | 15 | 43 | | 16 | 20 | | 17 | 25 | | 18 | 4 | | 19 | 9 | | 20 | 52 | | 21 | 25 | | 22 | 14 | | 23 | 7 | | 24 | 16 | | 25 | 4 | | 26 | 4 | | 27 | 56 | | 28 | 37 | | 29 | 12 | | 30 | 22 | | 31 | 41 | | 32 | 3 | | 33 | 38 | | 34 | 14 | | 35 | 23 | | 36 | 14 | | 37 | 4 | | 38 | 14 | | 39 | 22 | | 40 | 26 | | 41 | 14 | | 42 | 11 | | 43 | 36 | | 44 | 6 | | 45 | 10 | | 46 | 21 | | 47 | 22 | | 48 | 35 | | 49 | 11 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 59 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 160 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 3 | | semicolonCount | 4 | | flaggedSentences | 7 | | totalSentences | 111 | | ratio | 0.063 | | matches | | 0 | "His hazel eyes tracked Rory's hands while she unfastened the chin-strap buckle—no fresh scrapes on the knuckles, steady pulse at her throat." | | 1 | "Her bright blue eyes conducted an inventory in half a second—the manicured fingernails free of ink, the crisp creases at the elbows, the faint plum shadows earned from reading case law under halogen lamps." | | 2 | "She studied Rory's face under the unforgiving amber bulb—the leaner angle of her cheekbones, the absence of mascara, the stillness of someone who no longer filled gaps in conversation to make others comfortable." | | 3 | "\"My mother has a forwarding box in Paddington. She sends Welsh cakes at Christmas; I send postcards without a return street.\"" | | 4 | "Rory set her mug down; porcelain met mahogany without a sound." | | 5 | "Nia lifted her glass; the ice cubes chimed against the crystal before she set it back down untouched." | | 6 | "\"Come by the chambers next week. Not for law—just lunch. Or let me get you out of courier work; our clerks hire paralegals off unfinished degrees all the time if a tenant vouches for—\"" |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1142 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 17 | | adverbRatio | 0.0148861646234676 | | lyAdverbCount | 0 | | lyAdverbRatio | 0 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 111 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 111 | | mean | 18.75 | | std | 12.85 | | cv | 0.686 | | sampleLengths | | 0 | 19 | | 1 | 21 | | 2 | 16 | | 3 | 25 | | 4 | 10 | | 5 | 19 | | 6 | 4 | | 7 | 17 | | 8 | 18 | | 9 | 22 | | 10 | 31 | | 11 | 18 | | 12 | 37 | | 13 | 14 | | 14 | 4 | | 15 | 8 | | 16 | 12 | | 17 | 29 | | 18 | 17 | | 19 | 37 | | 20 | 26 | | 21 | 6 | | 22 | 13 | | 23 | 1 | | 24 | 10 | | 25 | 13 | | 26 | 25 | | 27 | 5 | | 28 | 34 | | 29 | 1 | | 30 | 12 | | 31 | 9 | | 32 | 22 | | 33 | 20 | | 34 | 25 | | 35 | 4 | | 36 | 9 | | 37 | 52 | | 38 | 25 | | 39 | 14 | | 40 | 7 | | 41 | 16 | | 42 | 4 | | 43 | 4 | | 44 | 23 | | 45 | 33 | | 46 | 37 | | 47 | 12 | | 48 | 7 | | 49 | 15 |
| |
| 68.47% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.43243243243243246 | | totalSentences | 111 | | uniqueOpeners | 48 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 59 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 12 | | totalSentences | 59 | | matches | | 0 | "She peeled off her left" | | 1 | "His hazel eyes tracked Rory's" | | 2 | "He reached beneath the counter" | | 3 | "She wore a tailored charcoal" | | 4 | "She approached the bar, scanning" | | 5 | "Her gaze snagged on Rory's" | | 6 | "Her bright blue eyes conducted" | | 7 | "Her gaze dropped from Rory's" | | 8 | "She studied Rory's face under" | | 9 | "She took a swallow of" | | 10 | "She looked past Rory's shoulder" | | 11 | "Her posture sagged a fraction" |
| | ratio | 0.203 | |
| 44.75% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 49 | | totalSentences | 59 | | matches | | 0 | "Rory pushed through the street" | | 1 | "Steam rose from the shoulders" | | 2 | "She peeled off her left" | | 3 | "Silas stood behind the mahogany" | | 4 | "A silver signet ring glinted" | | 5 | "His hazel eyes tracked Rory's" | | 6 | "He reached beneath the counter" | | 7 | "Rory unzipped her jacket to" | | 8 | "Silas poured boiling water over" | | 9 | "A woman stepped onto the" | | 10 | "She wore a tailored charcoal" | | 11 | "She approached the bar, scanning" | | 12 | "Her gaze snagged on Rory's" | | 13 | "The leather strap of the" | | 14 | "The three syllables dropped onto" | | 15 | "Rory's hand went still around" | | 16 | "Rory turned on the stool." | | 17 | "Her bright blue eyes conducted" | | 18 | "Nia stepped past two empty" | | 19 | "Her gaze dropped from Rory's" |
| | ratio | 0.831 | |
| 84.75% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 59 | | matches | | 0 | "Before the lid settled, the" |
| | ratio | 0.017 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 53 | | technicalSentenceCount | 3 | | matches | | 0 | "Before the lid settled, the street door swung open again, letting in a gust of October wind that rattled a 1920s street chart of Prague near the coat hooks." | | 1 | "Nia pulled off her kidskin gloves and folded them beside her glass, remaining standing as if sitting meant committing to a jurisdiction she hadn't vetted." | | 2 | "Nia reached across the narrow gap of polished wood, her fingertips stopping an inch shy of Rory's frayed waterproof sleeve, hovering over the smell of rain and …" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 0 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |