| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 54 | | tagDensity | 0.241 | | leniency | 0.481 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 92.65% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1360 | | 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) | |
| 66.91% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1360 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "scanning" | | 1 | "shattered" | | 2 | "silence" | | 3 | "weight" | | 4 | "throb" | | 5 | "reminder" | | 6 | "eyebrow" |
| |
| 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 | 81 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 81 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 122 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 64 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1349 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 7 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 32 | | wordCount | 901 | | uniqueNames | 10 | | maxNameDensity | 1.33 | | worstName | "Silas" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Silas" | | discoveredNames | | Raven | 1 | | Nest | 1 | | Nadia | 9 | | Prague | 3 | | Talisker | 2 | | Silas | 12 | | Soho | 1 | | Charing | 1 | | Cross | 1 | | Service | 1 |
| | persons | | | places | | 0 | "Prague" | | 1 | "Soho" | | 2 | "Charing" | | 3 | "Service" |
| | globalScore | 0.834 | | windowScore | 0.833 | |
| 45.83% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 48 | | glossingSentenceCount | 2 | | matches | | 0 | "looked like and pushed through the front" | | 1 | "sounded like exhaustion pressed into the s" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1349 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 122 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 61 | | mean | 22.11 | | std | 22.6 | | cv | 1.022 | | sampleLengths | | 0 | 75 | | 1 | 13 | | 2 | 38 | | 3 | 12 | | 4 | 3 | | 5 | 35 | | 6 | 29 | | 7 | 12 | | 8 | 8 | | 9 | 53 | | 10 | 22 | | 11 | 30 | | 12 | 1 | | 13 | 5 | | 14 | 1 | | 15 | 7 | | 16 | 72 | | 17 | 19 | | 18 | 17 | | 19 | 13 | | 20 | 1 | | 21 | 2 | | 22 | 21 | | 23 | 8 | | 24 | 34 | | 25 | 26 | | 26 | 19 | | 27 | 15 | | 28 | 5 | | 29 | 3 | | 30 | 33 | | 31 | 5 | | 32 | 16 | | 33 | 76 | | 34 | 9 | | 35 | 3 | | 36 | 73 | | 37 | 26 | | 38 | 34 | | 39 | 7 | | 40 | 68 | | 41 | 24 | | 42 | 4 | | 43 | 1 | | 44 | 1 | | 45 | 7 | | 46 | 39 | | 47 | 59 | | 48 | 2 | | 49 | 9 |
| |
| 96.60% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 81 | | matches | | 0 | "been broken" | | 1 | "been chewed" |
| |
| 77.30% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 163 | | matches | | 0 | "was polishing" | | 1 | "was waiting" | | 2 | "wasn't coming" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 122 | | ratio | 0.066 | | matches | | 0 | "She moved like she expected the floor to give way beneath her—shoulders hunched, chin tucked, eyes scanning corners before they settled on anything straight ahead." | | 1 | "She pulled out a barstool with her foot and sat the way someone sits in a dentist's chair—resigned to discomfort, hoping it ends fast." | | 2 | "Nadia reached into the oversized coat and produced a cigarette case—silver, engraved with initials that weren't hers." | | 3 | "The limp made itself known as he shifted weight—a dull throb behind his kneecap, the body's evening reminder that Prague had happened and no surgeon could fully undo it." | | 4 | "Nadia's jaw tightened, and for a moment the overhead light caught something in her expression that Silas recognized—the same look she'd worn in the Prague hotel room when she'd told him to go and leave her behind, that flat calculation of cost and survival that meant she'd already decided something terrible and was waiting for the rest of the world to catch up." | | 5 | "The engraving was recent—the silver was brighter where the letters had been cut." | | 6 | "Not softened—she'd lost the architecture for softening—but opened, like a door on rusted hinges." | | 7 | "Eleven years had taken the woman he'd known—the sharpest tradecraft mind in the Service, the one who could talk her way past a checkpoint or talk a man into betraying his country over a single glass of wine—and left this." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 913 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 22 | | adverbRatio | 0.024096385542168676 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.0032858707557502738 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 122 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 122 | | mean | 11.06 | | std | 10.67 | | cv | 0.965 | | sampleLengths | | 0 | 22 | | 1 | 25 | | 2 | 28 | | 3 | 9 | | 4 | 4 | | 5 | 13 | | 6 | 17 | | 7 | 8 | | 8 | 12 | | 9 | 3 | | 10 | 5 | | 11 | 7 | | 12 | 23 | | 13 | 5 | | 14 | 24 | | 15 | 9 | | 16 | 3 | | 17 | 8 | | 18 | 1 | | 19 | 11 | | 20 | 41 | | 21 | 9 | | 22 | 5 | | 23 | 8 | | 24 | 9 | | 25 | 21 | | 26 | 1 | | 27 | 5 | | 28 | 1 | | 29 | 2 | | 30 | 4 | | 31 | 1 | | 32 | 18 | | 33 | 22 | | 34 | 32 | | 35 | 5 | | 36 | 7 | | 37 | 7 | | 38 | 8 | | 39 | 9 | | 40 | 13 | | 41 | 1 | | 42 | 2 | | 43 | 3 | | 44 | 14 | | 45 | 4 | | 46 | 8 | | 47 | 25 | | 48 | 9 | | 49 | 8 |
| |
| 65.57% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.4180327868852459 | | totalSentences | 122 | | uniqueOpeners | 51 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 68 | | matches | | 0 | "Somewhere outside, a siren wound" | | 1 | "Just held it like a" | | 2 | "Then he limped toward the" |
| | ratio | 0.044 | |
| 78.82% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 24 | | totalSentences | 68 | | matches | | 0 | "She moved like she expected" | | 1 | "Her coat hung two sizes" | | 2 | "She stood at the far" | | 3 | "His signet ring clicked against" | | 4 | "She pulled out a barstool" | | 5 | "She folded her arms on" | | 6 | "He reached for a bottle" | | 7 | "She used to drink it." | | 8 | "He poured two fingers and" | | 9 | "She sipped this time." | | 10 | "She gave Silas a wave," | | 11 | "She tapped the bar with" | | 12 | "He kept his voice level" | | 13 | "She didn't open it." | | 14 | "He leaned forward, forearms on" | | 15 | "She set the cigarette case" | | 16 | "She pushed the case toward" | | 17 | "He turned it over." | | 18 | "He set the case down" | | 19 | "Her voice had changed" |
| | ratio | 0.353 | |
| 18.82% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 60 | | totalSentences | 68 | | matches | | 0 | "The green neon sign threw" | | 1 | "She moved like she expected" | | 2 | "Her coat hung two sizes" | | 3 | "Silas looked up from the" | | 4 | "The rag stopped mid-twist." | | 5 | "The woman's voice came out" | | 6 | "She stood at the far" | | 7 | "Silas set the glass down." | | 8 | "His signet ring clicked against" | | 9 | "The woman's lips pressed together." | | 10 | "She pulled out a barstool" | | 11 | "She folded her arms on" | | 12 | "The name settled into the" | | 13 | "Silas hadn't said it aloud" | | 14 | "He reached for a bottle" | | 15 | "She used to drink it." | | 16 | "People changed, but some things" | | 17 | "He poured two fingers and" | | 18 | "Nadia caught it, examined the" | | 19 | "She sipped this time." |
| | ratio | 0.882 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 68 | | matches | (empty) | | ratio | 0 | |
| 91.84% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 28 | | technicalSentenceCount | 2 | | matches | | 0 | "Nadia's jaw tightened, and for a moment the overhead light caught something in her expression that Silas recognized—the same look she'd worn in the Prague hotel…" | | 1 | "This lean, watchful creature who flinched at doors and carried dead men's cigarette cases like rosaries." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 54 | | tagDensity | 0.019 | | leniency | 0.037 | | rawRatio | 0 | | effectiveRatio | 0 | |