| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 0 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 95.70% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1163 | | totalAiIsmAdverbs | 1 | | found | | | highlights | | |
| 100.00% | AI-ism character names | Target: 0 AI-default names (17 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 14.02% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1163 | | totalAiIsms | 20 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | |
| | highlights | | 0 | "measured" | | 1 | "fleeting" | | 2 | "weight" | | 3 | "glint" | | 4 | "predator" | | 5 | "echo" | | 6 | "familiar" | | 7 | "gloom" | | 8 | "echoing" | | 9 | "whisper" | | 10 | "oppressive" | | 11 | "silence" | | 12 | "pulsed" | | 13 | "symphony" | | 14 | "crystal" | | 15 | "hulking" | | 16 | "chill" | | 17 | "sense of" |
| |
| 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 | 98 | | matches | (empty) | |
| 84.55% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 4 | | narrationSentences | 98 | | filterMatches | (empty) | | hedgeMatches | | 0 | "seemed to" | | 1 | "happened to" |
| |
| 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 | 39 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1153 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 2 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 31 | | wordCount | 1150 | | uniqueNames | 13 | | maxNameDensity | 0.87 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "Quinn" | | discoveredNames | | Soho | 1 | | Harlow | 1 | | Quinn | 10 | | Herrera | 7 | | Raven | 1 | | Nest | 1 | | Shaftesbury | 1 | | Avenue | 1 | | Camden | 1 | | Tube | 2 | | Veil | 1 | | Market | 1 | | Morris | 3 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Herrera" | | 3 | "Morris" |
| | places | | 0 | "Soho" | | 1 | "Raven" | | 2 | "Shaftesbury" | | 3 | "Avenue" | | 4 | "Camden" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 70 | | glossingSentenceCount | 1 | | matches | | 0 | "Weapons that seemed to drink the very light from the air" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.867 | | wordCount | 1153 | | matches | | 0 | "not the steady, sterile light of electricity, but the flickering, erratic glow of open flames" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 98 | | matches | | |
| 36.52% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 13 | | mean | 88.69 | | std | 24.64 | | cv | 0.278 | | sampleLengths | | 0 | 68 | | 1 | 126 | | 2 | 98 | | 3 | 76 | | 4 | 124 | | 5 | 49 | | 6 | 80 | | 7 | 84 | | 8 | 132 | | 9 | 66 | | 10 | 99 | | 11 | 81 | | 12 | 70 |
| |
| 98.10% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 98 | | matches | | 0 | "were piled" | | 1 | "been taught" |
| |
| 82.35% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 170 | | matches | | 0 | "was losing" | | 1 | "wasn’t waiting" | | 2 | "was fumbling" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 3 | | semicolonCount | 2 | | flaggedSentences | 5 | | totalSentences | 98 | | ratio | 0.051 | | matches | | 0 | "Her focus narrowed to the man’s dark, curly hair, plastered to his head, and the glint of metal at his neck—a small medallion catching the jaundiced glow of a streetlamp." | | 1 | "Herrera sent a newspaper stand crashing in his wake; Quinn sidestepped the cascade of glossy magazines without breaking her stride." | | 2 | "The only light came from strange sources ahead—not the steady, sterile light of electricity, but the flickering, erratic glow of open flames and something else, something that pulsed with shades of violet and veridian." | | 3 | "The crowd was a menagerie of beings that scrambled her perception; people with skin like polished obsidian, others with eyes that held entire constellations, and some shrouded in shadows that shifted and coiled with a life of their own." | | 4 | "Her partner’s face swam in her memory—a wry smile, a weary sigh." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 969 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 16 | | adverbRatio | 0.016511867905056758 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.008255933952528379 | |
| 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 | 11.77 | | std | 7.72 | | cv | 0.657 | | sampleLengths | | 0 | 18 | | 1 | 26 | | 2 | 10 | | 3 | 2 | | 4 | 12 | | 5 | 14 | | 6 | 12 | | 7 | 30 | | 8 | 25 | | 9 | 9 | | 10 | 9 | | 11 | 27 | | 12 | 14 | | 13 | 20 | | 14 | 23 | | 15 | 17 | | 16 | 22 | | 17 | 2 | | 18 | 8 | | 19 | 16 | | 20 | 24 | | 21 | 4 | | 22 | 17 | | 23 | 4 | | 24 | 2 | | 25 | 1 | | 26 | 18 | | 27 | 24 | | 28 | 19 | | 29 | 14 | | 30 | 16 | | 31 | 5 | | 32 | 8 | | 33 | 9 | | 34 | 3 | | 35 | 8 | | 36 | 7 | | 37 | 18 | | 38 | 9 | | 39 | 15 | | 40 | 9 | | 41 | 14 | | 42 | 14 | | 43 | 11 | | 44 | 5 | | 45 | 19 | | 46 | 8 | | 47 | 9 | | 48 | 34 | | 49 | 21 |
| |
| 38.44% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 14 | | diversityRatio | 0.3163265306122449 | | totalSentences | 98 | | uniqueOpeners | 31 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 92 | | matches | (empty) | | ratio | 0 | |
| 50.43% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 39 | | totalSentences | 92 | | matches | | 0 | "He was fast, a desperate," | | 1 | "She ignored the burn in" | | 2 | "Her focus narrowed to the" | | 3 | "He glanced back, his face" | | 4 | "He moved with the frantic" | | 5 | "She had been on his" | | 6 | "They tore through the warren" | | 7 | "He risked a blind dash" | | 8 | "She saw the white flash" | | 9 | "It was a gut of" | | 10 | "His movements grew ragged, his" | | 11 | "He burst from the alley" | | 12 | "He risked another look over" | | 13 | "He skidded on the wet" | | 14 | "She approached the corner, body" | | 15 | "He wasn’t waiting in ambush." | | 16 | "He was fumbling with something" | | 17 | "It squealed open." | | 18 | "He scrambled through the dark" | | 19 | "She holstered her weapon, the" |
| | ratio | 0.424 | |
| 14.35% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 82 | | totalSentences | 92 | | matches | | 0 | "The rain fell in sheets," | | 1 | "Detective Harlow Quinn’s boots slapped" | | 2 | "He was fast, a desperate," | | 3 | "Quinn rounded the corner, her" | | 4 | "She ignored the burn in" | | 5 | "Her focus narrowed to the" | | 6 | "He glanced back, his face" | | 7 | "He moved with the frantic" | | 8 | "Quinn maintained her pace, a" | | 9 | "She had been on his" | | 10 | "They tore through the warren" | | 11 | "Herrera sent a newspaper stand" | | 12 | "He risked a blind dash" | | 13 | "Quinn flowed through the traffic" | | 14 | "She saw the white flash" | | 15 | "The passage stank of stale" | | 16 | "It was a gut of" | | 17 | "The sounds of the city" | | 18 | "Herrera was losing steam." | | 19 | "His movements grew ragged, his" |
| | ratio | 0.891 | |
| 54.35% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 92 | | matches | | 0 | "Before her lay an impossible" |
| | ratio | 0.011 | |
| 85.71% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 50 | | technicalSentenceCount | 4 | | matches | | 0 | "His movements grew ragged, his breathing a harsh, tearing sound that reached her even over her own." | | 1 | "He risked another look over his shoulder, his warm brown eyes wide with a terror that seemed too large for a simple off-the-books medic." | | 2 | "The crowd was a menagerie of beings that scrambled her perception; people with skin like polished obsidian, others with eyes that held entire constellations, an…" | | 3 | "This was the same brand of wrongness that had clung to the scene of DS Morris’s death." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 1 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |