| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 9 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 30 | | tagDensity | 0.3 | | leniency | 0.6 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 96.04% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1262 | | totalAiIsmAdverbs | 1 | | found | | | highlights | | |
| 80.00% | AI-ism character names | Target: 0 AI-default names (17 tracked, −20% each) | | codexExemptions | (empty) | | found | | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 40.57% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1262 | | totalAiIsms | 15 | | found | | | highlights | | 0 | "etched" | | 1 | "quivered" | | 2 | "flicker" | | 3 | "flicked" | | 4 | "methodical" | | 5 | "unsettled" | | 6 | "scanned" | | 7 | "charged" | | 8 | "vibrated" | | 9 | "tracing" | | 10 | "dance" | | 11 | "shattered" |
| |
| 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 | 76 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 76 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 98 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 49 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1225 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 0 | | matches | (empty) | |
| 85.06% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 29 | | wordCount | 770 | | uniqueNames | 10 | | maxNameDensity | 1.3 | | worstName | "Patel" | | maxWindowNameDensity | 2 | | worstWindowName | "Quinn" | | discoveredNames | | Harlow | 2 | | Quinn | 9 | | Tube | 2 | | Camden | 1 | | British | 1 | | Patel | 10 | | Tupperware | 1 | | Morris | 1 | | Veil | 1 | | Market | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Patel" | | 3 | "Tupperware" | | 4 | "Morris" |
| | places | | | globalScore | 0.851 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 50 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 36.73% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.633 | | wordCount | 1225 | | matches | | 0 | "not just of oil and city-fatigue, but chalk, burnt ozone, something metallic with a back-note of s" | | 1 | "No one but" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 98 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 58 | | mean | 21.12 | | std | 13 | | cv | 0.616 | | sampleLengths | | 0 | 5 | | 1 | 33 | | 2 | 26 | | 3 | 43 | | 4 | 20 | | 5 | 29 | | 6 | 25 | | 7 | 39 | | 8 | 6 | | 9 | 48 | | 10 | 33 | | 11 | 37 | | 12 | 13 | | 13 | 33 | | 14 | 29 | | 15 | 31 | | 16 | 18 | | 17 | 6 | | 18 | 17 | | 19 | 40 | | 20 | 23 | | 21 | 18 | | 22 | 38 | | 23 | 25 | | 24 | 30 | | 25 | 45 | | 26 | 9 | | 27 | 6 | | 28 | 4 | | 29 | 32 | | 30 | 14 | | 31 | 12 | | 32 | 12 | | 33 | 25 | | 34 | 9 | | 35 | 22 | | 36 | 6 | | 37 | 5 | | 38 | 11 | | 39 | 7 | | 40 | 4 | | 41 | 14 | | 42 | 14 | | 43 | 36 | | 44 | 44 | | 45 | 21 | | 46 | 11 | | 47 | 46 | | 48 | 4 | | 49 | 5 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 76 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 150 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 98 | | ratio | 0.112 | | matches | | 0 | "Coins were pressed into both eyelids—coins not British, their stamped halos picked out in odd, runic script." | | 1 | "Quinn grunted, letting her gaze map the field of play: a rucksack, half-zipped, contents scattered—phosphored books, a snap-top Tupperware, battered phone." | | 2 | "She held it near the victim’s wrist—veins blue, skin gone the stiff white of candle wax." | | 3 | "“Rats ever make the air feel like static’s crawling up your arm?” She angled her torch—caught, just out of line in the bluish filter of dust and ancient grime, a set of half-moon marks gouged into the grout between tiles." | | 4 | "Out of sight, out of mind—safe until you glimpsed something that watched you back." | | 5 | "Abrasion—a narrow welt, high on the palm." | | 6 | "No—thicker, almost congealed, and the scent lingered: not smoke, not grease, some lingering ghost of burnt thyme." | | 7 | "She scanned the pages—ink scribblings, train numbers, dates, sigils scrawled in a meticulous, looping hand." | | 8 | "Crumpled between thin chapters, a bone token clattered to the tile—off-white, smoothed and stamped with the unmistakable glyph of the Veil Market." | | 9 | "The boredom and routine of a robbery gone wrong faded beneath the scurry of wheels and boots up above—the world rolling on without them, the shadowed realm below pulsing with its secrets." | | 10 | "“Everyone sees the surface, Sergeant. Trick is to see the scratch behind the mirror.” She paused, eyes landing again on the compass—its needle now spinning in place, an agitated dance shadowed with intent." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 775 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 19 | | adverbRatio | 0.024516129032258065 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.005161290322580645 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 98 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 98 | | mean | 12.5 | | std | 9.34 | | cv | 0.747 | | sampleLengths | | 0 | 5 | | 1 | 16 | | 2 | 4 | | 3 | 13 | | 4 | 26 | | 5 | 14 | | 6 | 12 | | 7 | 17 | | 8 | 14 | | 9 | 6 | | 10 | 29 | | 11 | 21 | | 12 | 4 | | 13 | 27 | | 14 | 12 | | 15 | 6 | | 16 | 48 | | 17 | 3 | | 18 | 14 | | 19 | 16 | | 20 | 2 | | 21 | 35 | | 22 | 13 | | 23 | 21 | | 24 | 12 | | 25 | 4 | | 26 | 25 | | 27 | 11 | | 28 | 20 | | 29 | 2 | | 30 | 16 | | 31 | 6 | | 32 | 17 | | 33 | 40 | | 34 | 6 | | 35 | 17 | | 36 | 3 | | 37 | 15 | | 38 | 15 | | 39 | 23 | | 40 | 4 | | 41 | 21 | | 42 | 10 | | 43 | 6 | | 44 | 14 | | 45 | 9 | | 46 | 7 | | 47 | 4 | | 48 | 12 | | 49 | 13 |
| |
| 79.59% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 2 | | diversityRatio | 0.4897959183673469 | | totalSentences | 98 | | uniqueOpeners | 48 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 68 | | matches | (empty) | | ratio | 0 | |
| 49.41% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 29 | | totalSentences | 68 | | matches | | 0 | "She snapped on nitrile gloves," | | 1 | "His voice clanged, practiced but" | | 2 | "She plucked her penlight and" | | 3 | "She didn’t look back" | | 4 | "She picked up the compass," | | 5 | "She held it near the" | | 6 | "She held up the coins" | | 7 | "Her eye narrowed" | | 8 | "Her boots cracked the dusty" | | 9 | "She angled her torch—caught, just" | | 10 | "She knelt, bringing her face" | | 11 | "She swept her gaze sideways," | | 12 | "She raised the victim’s wrist" | | 13 | "She pressed the tips, methodical:" | | 14 | "She scraped a sample into" | | 15 | "She swept her gaze to" | | 16 | "She thumbed the compass." | | 17 | "She weighed it in her" | | 18 | "She scanned the pages—ink scribblings," | | 19 | "She leafed gently through one" |
| | ratio | 0.426 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 63 | | totalSentences | 68 | | matches | | 0 | "Detective Harlow Quinn dropped to" | | 1 | "Chalk dust motes swirled." | | 2 | "She snapped on nitrile gloves," | | 3 | "The abandoned Tube platform at" | | 4 | "A body sat propped against" | | 5 | "Blood darkened the shirt between" | | 6 | "Coins were pressed into both" | | 7 | "Sergeant Patel hovered, shifting from" | | 8 | "His voice clanged, practiced but" | | 9 | "Quinn grunted, letting her gaze" | | 10 | "She plucked her penlight and" | | 11 | "The needle ticked, then quivered," | | 12 | "She didn’t look back" | | 13 | "Quinn said nothing." | | 14 | "She picked up the compass," | | 15 | "She held it near the" | | 16 | "She held up the coins" | | 17 | "Her eye narrowed" | | 18 | "Patel’s lips drew thin." | | 19 | "Quinn flicked her gaze to" |
| | ratio | 0.926 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 68 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 33 | | technicalSentenceCount | 1 | | matches | | 0 | "The symbols, part-scrawled, half-carved, spiralled inward, each line angled as if drawn with a trembling, desperate hand." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 9 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 30 | | tagDensity | 0.033 | | leniency | 0.067 | | rawRatio | 0 | | effectiveRatio | 0 | |