| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 10 | | adverbTagCount | 1 | | adverbTags | | 0 | "safety you’ll ever [ever]" |
| | dialogueSentences | 20 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0.1 | | effectiveRatio | 0.1 | |
| 96.30% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1352 | | totalAiIsmAdverbs | 1 | | 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) | |
| 63.02% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1352 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "flickered" | | 1 | "echoing" | | 2 | "tracing" | | 3 | "shattered" | | 4 | "throbbed" | | 5 | "silence" | | 6 | "glistening" | | 7 | "weight" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 49 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 49 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 61 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 74 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1318 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 17 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 37 | | wordCount | 949 | | uniqueNames | 16 | | maxNameDensity | 0.84 | | worstName | "Silas" | | maxWindowNameDensity | 2 | | worstWindowName | "Silas" | | discoveredNames | | Raven | 1 | | Nest | 3 | | Rory | 6 | | Soho | 2 | | Golden | 1 | | Empress | 1 | | Evan | 3 | | Cardiff | 5 | | West | 1 | | End | 1 | | Silas | 8 | | European | 1 | | Prague | 1 | | Shamrock | 1 | | Regret | 1 | | Eva | 1 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Rory" | | 3 | "Evan" | | 4 | "End" | | 5 | "Silas" | | 6 | "Regret" | | 7 | "Eva" |
| | places | | 0 | "Soho" | | 1 | "Cardiff" | | 2 | "West" | | 3 | "Prague" |
| | globalScore | 1 | | windowScore | 1 | |
| 36.36% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 44 | | glossingSentenceCount | 2 | | matches | | 0 | "felt like a second chance" | | 1 | "felt like someone who’d finally found h" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1318 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 61 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 20 | | mean | 65.9 | | std | 48.56 | | cv | 0.737 | | sampleLengths | | 0 | 208 | | 1 | 169 | | 2 | 48 | | 3 | 107 | | 4 | 17 | | 5 | 15 | | 6 | 50 | | 7 | 80 | | 8 | 5 | | 9 | 83 | | 10 | 76 | | 11 | 49 | | 12 | 52 | | 13 | 46 | | 14 | 44 | | 15 | 45 | | 16 | 38 | | 17 | 46 | | 18 | 40 | | 19 | 100 |
| |
| 90.94% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 49 | | matches | | 0 | "was combed" | | 1 | "being listened" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 159 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 3 | | flaggedSentences | 12 | | totalSentences | 61 | | ratio | 0.197 | | matches | | 0 | "Rain slicked the Soho pavement, beading on the cuffs of her Golden Empress delivery jacket—stained with soy sauce from a mid-shift spill when a tourist jostled her bike while she darted around a black taxi." | | 1 | "She didn’t usually stop at the bar this late—Silas kept odd hours, and the Nest’s dim rooms felt too quiet when the last patrons stumbled out—but tonight, the thought of her empty flat (peeling cream paint, silent phone; her parents hadn’t called in three months) felt heavier than her canvas delivery bag slung over her shoulder." | | 2 | "The walls lined with old maps—frayed edges, faded red ink tracing secret European routes—and black-and-white photographs: a trench-coated man leaning against a Prague streetlamp, a group laughing in her dad’s favorite Cardiff pub (The Shamrock), a close-up of a wooden raven puzzle." | | 3 | "The silver signet ring on his right hand glinted—she’d seen it a hundred times, but tonight its twisted engraving snagged her eye like a forgotten memory." | | 4 | "He didn’t ask—he knew her aversion to alcohol, born when Evan shattered her wine glass against the wall mid-fight." | | 5 | "The small crescent scar there throbbed—a childhood Cardiff accident: she’d fallen off her bike chasing a tabby into her dad’s office parking lot, slicing her wrist on a beer bottle shard." | | 6 | "Silas set the tumbler down with a soft clink, twisting his signet ring—a new habit she’d missed." | | 7 | "She’d called him “Mister Puzzle” back then; he’d visited weekly, twisting that same silver ring while he taught her to solve it in 10 minutes flat." | | 8 | "She’d blamed herself for 18 years—for not asking his name, for not chasing him, for losing the only positive influence she’d had before her dad’s breakdown (a high-profile murder case loss sent him to rehab), before Evan’s first fist connected with her jaw." | | 9 | "“I heard about your dad,” Silas said, grunting as he pushed off the bar—his left leg buckling, he grabbed the edge for support." | | 10 | "“Hid out after Prague; MI6 thought I betrayed them. Couldn’t reach out when he checked into rehab. Couldn’t risk your family getting caught in my mess.”" | | 11 | "Rain tapped on the windows, and the silence between them wasn’t empty—it was the hush of two old friends who’d finally found their way back, the weight of 18 years’ regret lightening just enough to let them breathe." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 848 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 24 | | adverbRatio | 0.02830188679245283 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.01179245283018868 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 61 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 61 | | mean | 21.61 | | std | 13.19 | | cv | 0.611 | | sampleLengths | | 0 | 25 | | 1 | 35 | | 2 | 34 | | 3 | 23 | | 4 | 35 | | 5 | 56 | | 6 | 30 | | 7 | 42 | | 8 | 17 | | 9 | 16 | | 10 | 38 | | 11 | 26 | | 12 | 29 | | 13 | 19 | | 14 | 8 | | 15 | 25 | | 16 | 31 | | 17 | 16 | | 18 | 27 | | 19 | 4 | | 20 | 13 | | 21 | 5 | | 22 | 7 | | 23 | 3 | | 24 | 17 | | 25 | 33 | | 26 | 15 | | 27 | 26 | | 28 | 39 | | 29 | 3 | | 30 | 2 | | 31 | 11 | | 32 | 72 | | 33 | 12 | | 34 | 43 | | 35 | 21 | | 36 | 23 | | 37 | 26 | | 38 | 3 | | 39 | 28 | | 40 | 21 | | 41 | 15 | | 42 | 31 | | 43 | 15 | | 44 | 11 | | 45 | 18 | | 46 | 10 | | 47 | 15 | | 48 | 20 | | 49 | 15 |
| |
| 53.55% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.36065573770491804 | | totalSentences | 61 | | uniqueOpeners | 22 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 48 | | matches | (empty) | | ratio | 0 | |
| 53.33% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 20 | | totalSentences | 48 | | matches | | 0 | "Her helmet dug into her" | | 1 | "She’d worked a double shift," | | 2 | "She didn’t usually stop at" | | 3 | "She pushed open the door," | | 4 | "His grey-streaked auburn hair was" | | 5 | "he said, his low, rough" | | 6 | "He didn’t ask—he knew her" | | 7 | "She set her scuffed helmet" | | 8 | "Her dad had sewn it" | | 9 | "She’d never told him the" | | 10 | "She’d called him back then;" | | 11 | "She’d blamed herself for 18" | | 12 | "She’d felt invisible, and now" | | 13 | "She’d fled Cardiff in the" | | 14 | "She’d regretted it daily, too" | | 15 | "she said, picking at the" | | 16 | "He opened it to reveal" | | 17 | "She pressed the wood to" | | 18 | "she said, her voice steady" | | 19 | "She felt like someone who’d" |
| | ratio | 0.417 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 45 | | totalSentences | 48 | | matches | | 0 | "The green neon sign of" | | 1 | "Rain slicked the Soho pavement," | | 2 | "The taxi driver’s curse had" | | 3 | "Her helmet dug into her" | | 4 | "She’d worked a double shift," | | 5 | "She didn’t usually stop at" | | 6 | "She pushed open the door," | | 7 | "The walls lined with old" | | 8 | "A grandfather clock in the" | | 9 | "Silas was behind the bar," | | 10 | "His grey-streaked auburn hair was" | | 11 | "The silver signet ring on" | | 12 | "he said, his low, rough" | | 13 | "He didn’t ask—he knew her" | | 14 | "Rory nodded, sliding onto a" | | 15 | "She set her scuffed helmet" | | 16 | "The small crescent scar there" | | 17 | "Her dad had sewn it" | | 18 | "A forgotten flash bubbled up:" | | 19 | "Silas paused, tumbler hovering." |
| | ratio | 0.938 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 48 | | matches | | | ratio | 0.021 | |
| 56.28% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 33 | | technicalSentenceCount | 4 | | matches | | 0 | "She’d worked a double shift, darting between Soho’s narrow lanes and the West End’s crowded sidewalks, her legs burning with every pedal stroke, and her feet ac…" | | 1 | "The small crescent scar there throbbed—a childhood Cardiff accident: she’d fallen off her bike chasing a tabby into her dad’s office parking lot, slicing her wr…" | | 2 | "She’d felt invisible, and now the man who could have helped her was right here, running the bar above her flat." | | 3 | "She felt like someone who’d finally found her way home." |
| |
| 75.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 10 | | uselessAdditionCount | 1 | | matches | | 0 | "she said, her voice steady as the clock’s tick" |
| |
| 50.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 6 | | fancyCount | 2 | | fancyTags | | 0 | "She’d (would)" | | 1 | "she whispered (whisper)" |
| | dialogueSentences | 20 | | tagDensity | 0.3 | | leniency | 0.6 | | rawRatio | 0.333 | | effectiveRatio | 0.2 | |