| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 11 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said instead [instead]" |
| | dialogueSentences | 35 | | tagDensity | 0.314 | | leniency | 0.629 | | rawRatio | 0.091 | | effectiveRatio | 0.057 | |
| 95.33% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1070 | | 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) | |
| 95.33% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1070 | | totalAiIsms | 1 | | found | | | highlights | | |
| 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 | 40 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 40 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 64 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 80 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1071 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 8 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 35 | | wordCount | 729 | | uniqueNames | 12 | | maxNameDensity | 1.65 | | worstName | "Quinn" | | maxWindowNameDensity | 3 | | worstWindowName | "Quinn" | | discoveredNames | | Camden | 1 | | Harlow | 1 | | Quinn | 12 | | Tube | 1 | | Marcus | 1 | | Webb | 5 | | Priya | 1 | | Sharma | 8 | | Ferris | 1 | | Eighteen | 1 | | Concentric | 1 | | Morris | 2 |
| | persons | | 0 | "Camden" | | 1 | "Harlow" | | 2 | "Quinn" | | 3 | "Marcus" | | 4 | "Webb" | | 5 | "Priya" | | 6 | "Sharma" | | 7 | "Ferris" | | 8 | "Concentric" | | 9 | "Morris" |
| | places | (empty) | | globalScore | 0.677 | | windowScore | 0.667 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 29 | | 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 | 1071 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 64 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 33 | | mean | 32.45 | | std | 33.72 | | cv | 1.039 | | sampleLengths | | 0 | 84 | | 1 | 31 | | 2 | 3 | | 3 | 23 | | 4 | 54 | | 5 | 3 | | 6 | 44 | | 7 | 4 | | 8 | 2 | | 9 | 88 | | 10 | 13 | | 11 | 47 | | 12 | 24 | | 13 | 2 | | 14 | 57 | | 15 | 4 | | 16 | 1 | | 17 | 89 | | 18 | 23 | | 19 | 5 | | 20 | 96 | | 21 | 3 | | 22 | 3 | | 23 | 106 | | 24 | 1 | | 25 | 11 | | 26 | 36 | | 27 | 7 | | 28 | 20 | | 29 | 103 | | 30 | 22 | | 31 | 8 | | 32 | 54 |
| |
| 87.72% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 40 | | matches | | 0 | "been opened" | | 1 | "been drawn" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 128 | | matches | (empty) | |
| 8.93% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 3 | | semicolonCount | 0 | | flaggedSentences | 3 | | totalSentences | 64 | | ratio | 0.047 | | matches | | 0 | "\"That's my read. Some kind of blade, heated. Except—\" Sharma crouched beside her, close enough that Quinn could smell the coffee on her breath, \"—except there's no accelerant residue. No burn pattern consistent with heat application. I had Ferris run a preliminary scan. Nothing.\"" | | 1 | "The wound wasn't a wound so much as an absence — like something had been drawn out through the incision rather than cut into it." | | 2 | "She thought of Morris's laugh, easy and constant, gone quiet three years running, and thought too of the compass sitting in her desk drawer at the station — evidence bagged and never logged, taken off a suspect who'd vanished from a locked interview room before she could ask him a single question." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 461 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 15 | | adverbRatio | 0.03253796095444685 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.008676789587852495 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 64 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 64 | | mean | 16.73 | | std | 16.3 | | cv | 0.974 | | sampleLengths | | 0 | 21 | | 1 | 31 | | 2 | 32 | | 3 | 21 | | 4 | 10 | | 5 | 3 | | 6 | 16 | | 7 | 7 | | 8 | 2 | | 9 | 23 | | 10 | 29 | | 11 | 3 | | 12 | 44 | | 13 | 4 | | 14 | 2 | | 15 | 48 | | 16 | 7 | | 17 | 25 | | 18 | 8 | | 19 | 13 | | 20 | 15 | | 21 | 18 | | 22 | 14 | | 23 | 15 | | 24 | 9 | | 25 | 2 | | 26 | 57 | | 27 | 4 | | 28 | 1 | | 29 | 80 | | 30 | 9 | | 31 | 3 | | 32 | 20 | | 33 | 5 | | 34 | 5 | | 35 | 20 | | 36 | 3 | | 37 | 30 | | 38 | 16 | | 39 | 4 | | 40 | 18 | | 41 | 3 | | 42 | 3 | | 43 | 40 | | 44 | 19 | | 45 | 5 | | 46 | 3 | | 47 | 39 | | 48 | 1 | | 49 | 11 |
| |
| 88.02% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.59375 | | totalSentences | 64 | | uniqueOpeners | 38 | |
| 87.72% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 38 | | matches | | 0 | "Instead there was a scorch" |
| | ratio | 0.026 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 9 | | totalSentences | 38 | | matches | | 0 | "She angled the beam across" | | 1 | "She'd seen trophy-taking before, the" | | 2 | "She crouched again, studied the" | | 3 | "She'd seen that shape before." | | 4 | "She looked again, and the" | | 5 | "She thought of Morris's laugh," | | 6 | "She hadn't told anyone about" | | 7 | "She hadn't told anyone the" | | 8 | "she said instead" |
| | ratio | 0.237 | |
| 38.95% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 32 | | totalSentences | 38 | | matches | | 0 | "Rain came down in sheets" | | 1 | "Detective Harlow Quinn ducked under" | | 2 | "Nobody had, not to this" | | 3 | "DC Priya Sharma stood near" | | 4 | "Sharma pointed her pen toward" | | 5 | "Webb's throat had been opened," | | 6 | "Sharma crouched beside her, close" | | 7 | "Quinn reached into her coat" | | 8 | "She angled the beam across" | | 9 | "The wound wasn't a wound" | | 10 | "Quinn didn't smile" | | 11 | "Sharma flipped a page on" | | 12 | "Quinn straightened, joints protesting the" | | 13 | "Sharma glanced down." | | 14 | "Webb's feet were bare, soles" | | 15 | "Quinn didn't believe it" | | 16 | "She'd seen trophy-taking before, the" | | 17 | "This was surgical." | | 18 | "She crouched again, studied the" | | 19 | "Nobody died like that." |
| | ratio | 0.842 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 38 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 20 | | technicalSentenceCount | 6 | | matches | | 0 | "Rain came down in sheets over Camden, turning the cordon tape into a limp ribbon that slapped against the police car." | | 1 | "Detective Harlow Quinn ducked under it without breaking stride, her boots finding the exact centre of each paving stone as if she'd walked this street a thousan…" | | 2 | "Instead there was a scorch mark, black and radiating outward like a photograph of a starburst, the edges curling as though the stone itself had tried to flinch …" | | 3 | "Eighteen years had burned most of the humour out of her, left something leaner behind, something that noticed." | | 4 | "Webb's feet were bare, soles pink and unweathered, no calluses, as though he'd never walked on them in his life." | | 5 | "Precise in a way that had nothing to do with cruelty and everything to do with purpose, like someone removing a component from a machine rather than harming a p…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 11 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 35 | | tagDensity | 0.086 | | leniency | 0.171 | | rawRatio | 0 | | effectiveRatio | 0 | |