| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 8 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 25 | | tagDensity | 0.32 | | leniency | 0.64 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1643 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 80.00% | AI-ism character names | Target: 0 AI-default names (16 tracked, −20% each) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 69.57% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1643 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "glinting" | | 1 | "shattered" | | 2 | "weight" | | 3 | "eyebrow" | | 4 | "furrowing" | | 5 | "glistening" | | 6 | "reminder" |
| |
| 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) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 63 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 79 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 66 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 4 | | totalWords | 1621 | | ratio | 0.002 | | matches | | 0 | "Tinker Tailor Soldier Spy" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 18 | | unquotedAttributions | 0 | | matches | (empty) | |
| 33.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 74 | | wordCount | 1215 | | uniqueNames | 20 | | maxNameDensity | 1.89 | | worstName | "Silas" | | maxWindowNameDensity | 4 | | worstWindowName | "Silas" | | discoveredNames | | Raven | 1 | | Nest | 1 | | Soho | 1 | | Rory | 14 | | Golden | 1 | | Empress | 1 | | Yu | 1 | | Fei | 1 | | Silas | 23 | | Prague | 3 | | Cardiff | 2 | | Brendan | 1 | | Jennifer | 1 | | Marcus | 10 | | Tailor | 1 | | Soldier | 1 | | Evan | 4 | | Eva | 3 | | Pre-Law | 2 | | Welsh | 2 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Rory" | | 3 | "Fei" | | 4 | "Silas" | | 5 | "Brendan" | | 6 | "Jennifer" | | 7 | "Marcus" | | 8 | "Evan" | | 9 | "Eva" |
| | places | | 0 | "Soho" | | 1 | "Prague" | | 2 | "Cardiff" |
| | globalScore | 0.553 | | windowScore | 0.333 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 56 | | 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 | 1621 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 79 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 28 | | mean | 57.89 | | std | 35.13 | | cv | 0.607 | | sampleLengths | | 0 | 145 | | 1 | 114 | | 2 | 112 | | 3 | 16 | | 4 | 23 | | 5 | 22 | | 6 | 65 | | 7 | 46 | | 8 | 42 | | 9 | 42 | | 10 | 50 | | 11 | 102 | | 12 | 75 | | 13 | 59 | | 14 | 53 | | 15 | 38 | | 16 | 69 | | 17 | 35 | | 18 | 23 | | 19 | 49 | | 20 | 33 | | 21 | 75 | | 22 | 8 | | 23 | 48 | | 24 | 24 | | 25 | 33 | | 26 | 93 | | 27 | 127 |
| |
| 99.69% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 63 | | matches | | 0 | "been shot" | | 1 | "was deemed" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 192 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 79 | | ratio | 0.101 | | matches | | 0 | "It’s 11 p.m., her last drop of the night for Golden Empress—Yu-Fei had slipped her an extra portion, muttering about her looking too thin lately—and she’s here to grab a glass of water before trundling up the creaky staircase to her flat above the bar." | | 1 | "His slight left limp is more pronounced tonight—he’d mentioned earlier that the rain worsened his knee, the one shattered in Prague 18 years ago—and he shifts his weight to his right leg every few seconds, his silver signet ring catching the light when he sets the glass down." | | 2 | "The crescent-shaped scar on her left wrist catches on the plastic lid as she reaches for a pair of chopsticks—she’d gotten it at 10, falling off her father’s bike in Cardiff, Brendan yelling at her for being careless while Jennifer knelt to clean it—and she tugs her sleeve down self-consciously." | | 3 | "She’d heard Silas mention Marcus once, in a slurred moment after a few too many whiskeys—his partner on the Prague op, the one who’d been shot in the shoulder while Silas dragged him to safety, the one who’d never spoken to him again after the mission was deemed a failure." | | 4 | "“Changed my mind a few times,” Silas says, pouring a glass of whiskey and sliding it across the bar—neat, Rory notices, the way Silas drinks when he’s nervous." | | 5 | "“Old trick. Useful for storing… things.” He doesn’t say what—contact lists, encrypted phones, the gun he keeps locked in a safe back there—and Rory knows better than to ask." | | 6 | "She’d fled that night, her Pre-Law textbooks still on her Cardiff flat desk, her father’s voice ringing in her ears—you’re throwing your life away, he’d yelled when she’d told him she was dropping out." | | 7 | "She knows Silas hasn’t told Marcus the rest—about the way he’d taught her to pick a lock last month when she’d lost her flat key, about the Welsh cakes Eva had sent her (still unopened on her desk), about the way he’d listened to her cry for an hour after she’d run into Evan at a grocery store last week." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1237 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 28 | | adverbRatio | 0.02263540824575586 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.0064672594987873885 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 79 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 79 | | mean | 20.52 | | std | 14.04 | | cv | 0.684 | | sampleLengths | | 0 | 42 | | 1 | 45 | | 2 | 21 | | 3 | 37 | | 4 | 25 | | 5 | 48 | | 6 | 14 | | 7 | 20 | | 8 | 7 | | 9 | 15 | | 10 | 50 | | 11 | 22 | | 12 | 25 | | 13 | 2 | | 14 | 14 | | 15 | 21 | | 16 | 2 | | 17 | 20 | | 18 | 2 | | 19 | 9 | | 20 | 50 | | 21 | 6 | | 22 | 14 | | 23 | 32 | | 24 | 28 | | 25 | 14 | | 26 | 20 | | 27 | 22 | | 28 | 21 | | 29 | 29 | | 30 | 6 | | 31 | 16 | | 32 | 38 | | 33 | 34 | | 34 | 8 | | 35 | 10 | | 36 | 65 | | 37 | 12 | | 38 | 47 | | 39 | 7 | | 40 | 44 | | 41 | 2 | | 42 | 6 | | 43 | 32 | | 44 | 9 | | 45 | 60 | | 46 | 13 | | 47 | 22 | | 48 | 6 | | 49 | 17 |
| |
| 36.08% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.2911392405063291 | | totalSentences | 79 | | uniqueOpeners | 23 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 62 | | matches | (empty) | | ratio | 0 | |
| 32.90% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 29 | | totalSentences | 62 | | matches | | 0 | "It’s 11 p.m., her last" | | 1 | "His slight left limp is" | | 2 | "He nods at her, his" | | 3 | "he says, his voice low," | | 4 | "She’s barely taken a bite" | | 5 | "He’s in his late 50s," | | 6 | "She’d heard Silas mention Marcus" | | 7 | "She’d never thought she’d see" | | 8 | "He doesn’t say what—contact lists," | | 9 | "She’d forgotten how loud regret" | | 10 | "She thinks of Evan, of" | | 11 | "She’d fled that night, her" | | 12 | "She hasn’t spoken to him" | | 13 | "He nods at Rory, who’s" | | 14 | "She knows Silas hasn’t told" | | 15 | "They fall silent, the only" | | 16 | "She pauses by the bar," | | 17 | "she asks, her voice quiet" | | 18 | "He gestures to her wrist" | | 19 | "She’d never said anything about" |
| | ratio | 0.468 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 60 | | totalSentences | 62 | | matches | | 0 | "The green neon of The" | | 1 | "It’s 11 p.m., her last" | | 2 | "The air hits her first:" | | 3 | "Silas is behind the bar," | | 4 | "His slight left limp is" | | 5 | "He nods at her, his" | | 6 | "he says, his voice low," | | 7 | "Rory murmurs a thanks, slipping" | | 8 | "The crescent-shaped scar on her" | | 9 | "She’s barely taken a bite" | | 10 | "He’s in his late 50s," | | 11 | "The cloth slips from his" | | 12 | "The man’s boots click across" | | 13 | "Silas clears his throat, picking" | | 14 | "Rory pauses, her chopsticks hovering" | | 15 | "She’d heard Silas mention Marcus" | | 16 | "She’d never thought she’d see" | | 17 | "Marcus leans against the bar," | | 18 | "Silas says, pouring a glass" | | 19 | "Marcus’s gaze snaps to the" |
| | ratio | 0.968 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 62 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 41 | | technicalSentenceCount | 1 | | matches | | 0 | "She’d fled that night, her Pre-Law textbooks still on her Cardiff flat desk, her father’s voice ringing in her ears—you’re throwing your life away, he’d yelled …" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 8 | | uselessAdditionCount | 3 | | matches | | 0 | "Silas says, his voice tightening" | | 1 | "she asks, her voice quiet" | | 2 | "Marcus says, his voice soft" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 25 | | tagDensity | 0.28 | | leniency | 0.56 | | rawRatio | 0.143 | | effectiveRatio | 0.08 | |