| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 20 | | adverbTagCount | 1 | | adverbTags | | 0 | "She crouched once [once]" |
| | dialogueSentences | 49 | | tagDensity | 0.408 | | leniency | 0.816 | | rawRatio | 0.05 | | effectiveRatio | 0.041 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1097 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 86.33% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1097 | | totalAiIsms | 3 | | found | | | highlights | | 0 | "weight" | | 1 | "pristine" | | 2 | "traced" |
| |
| 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 | 68 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 68 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 97 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 53 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1092 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 16 | | unquotedAttributions | 0 | | matches | (empty) | |
| 88.65% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 19 | | wordCount | 652 | | uniqueNames | 6 | | maxNameDensity | 1.23 | | worstName | "Ellroy" | | maxWindowNameDensity | 2 | | worstWindowName | "Quinn" | | discoveredNames | | Tube | 1 | | Quinn | 6 | | Blitz | 1 | | Ellroy | 8 | | Etchings | 1 | | Morris | 2 |
| | persons | | 0 | "Quinn" | | 1 | "Ellroy" | | 2 | "Morris" |
| | places | (empty) | | globalScore | 0.887 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 44 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.916 | | wordCount | 1092 | | matches | | 0 | "not slack the way the dead went slack, but bent, deliberate, like he'd been holding something the momen" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 97 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 42 | | mean | 26 | | std | 21 | | cv | 0.808 | | sampleLengths | | 0 | 46 | | 1 | 24 | | 2 | 4 | | 3 | 51 | | 4 | 10 | | 5 | 32 | | 6 | 44 | | 7 | 8 | | 8 | 11 | | 9 | 4 | | 10 | 7 | | 11 | 35 | | 12 | 27 | | 13 | 6 | | 14 | 42 | | 15 | 39 | | 16 | 5 | | 17 | 32 | | 18 | 25 | | 19 | 5 | | 20 | 37 | | 21 | 31 | | 22 | 3 | | 23 | 10 | | 24 | 28 | | 25 | 53 | | 26 | 11 | | 27 | 27 | | 28 | 2 | | 29 | 81 | | 30 | 18 | | 31 | 8 | | 32 | 75 | | 33 | 3 | | 34 | 72 | | 35 | 5 | | 36 | 40 | | 37 | 39 | | 38 | 54 | | 39 | 4 | | 40 | 20 | | 41 | 14 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 68 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 109 | | matches | (empty) | |
| 25.04% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 4 | | semicolonCount | 0 | | flaggedSentences | 4 | | totalSentences | 97 | | ratio | 0.041 | | matches | | 0 | "Dust, mould, and underneath it something she couldn't name—sweet and metallic, like copper coins left in the sun." | | 1 | "Dust lay everywhere—decades of it, undisturbed." | | 2 | "The shape of it pulled at a memory she didn't want—a memory of Morris, three years gone, and a case that had no clean ending." | | 3 | "\"I'm saying the evidence doesn't add up. A fall leaves chaos. This—\" she gestured at the body, the oval of blood, the folded arm \"—this is composition. Someone wanted it found, and wanted us to file it and forget it.\"" |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 639 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 12 | | adverbRatio | 0.018779342723004695 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.003129890453834116 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 97 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 97 | | mean | 11.26 | | std | 8.71 | | cv | 0.773 | | sampleLengths | | 0 | 19 | | 1 | 8 | | 2 | 19 | | 3 | 6 | | 4 | 18 | | 5 | 4 | | 6 | 15 | | 7 | 6 | | 8 | 17 | | 9 | 4 | | 10 | 9 | | 11 | 7 | | 12 | 3 | | 13 | 13 | | 14 | 19 | | 15 | 4 | | 16 | 19 | | 17 | 7 | | 18 | 14 | | 19 | 6 | | 20 | 2 | | 21 | 11 | | 22 | 4 | | 23 | 2 | | 24 | 5 | | 25 | 31 | | 26 | 4 | | 27 | 7 | | 28 | 20 | | 29 | 3 | | 30 | 3 | | 31 | 3 | | 32 | 10 | | 33 | 2 | | 34 | 13 | | 35 | 14 | | 36 | 11 | | 37 | 14 | | 38 | 14 | | 39 | 5 | | 40 | 21 | | 41 | 11 | | 42 | 9 | | 43 | 16 | | 44 | 5 | | 45 | 25 | | 46 | 12 | | 47 | 2 | | 48 | 22 | | 49 | 6 |
| |
| 76.63% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.4845360824742268 | | totalSentences | 97 | | uniqueOpeners | 47 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 55 | | matches | | 0 | "Just a smooth stone floor" | | 1 | "Just that tidy, contained spill," |
| | ratio | 0.036 | |
| 67.27% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 55 | | matches | | 0 | "She held up her badge" | | 1 | "She knelt opposite him." | | 2 | "His eyes stared at the" | | 3 | "She pulled a pair of" | | 4 | "She gestured at the oval" | | 5 | "She pressed two fingers near" | | 6 | "He rubbed the back of" | | 7 | "She walked the length of" | | 8 | "She pointed at the floor" | | 9 | "She moved the light in" | | 10 | "He simply lay there, as" | | 11 | "She watched his face" | | 12 | "She crouched once more, and" | | 13 | "She bent the torch close." | | 14 | "She traced the marks in" | | 15 | "She pushed it back." | | 16 | "She turned in a slow" | | 17 | "she gestured at the body," | | 18 | "She crouched a final time" | | 19 | "She thought of Morris again," |
| | ratio | 0.382 | |
| 23.64% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 48 | | totalSentences | 55 | | matches | | 0 | "Rain slicked the cobblestones outside" | | 1 | "The constable at the entrance" | | 2 | "She held up her badge" | | 3 | "The air thickened with each" | | 4 | "Dust, mould, and underneath it" | | 5 | "DS Ellroy waited at the" | | 6 | "Tiles the colour of old" | | 7 | "A body sprawled near the" | | 8 | "Ellroy crouched beside the corpse" | | 9 | "She knelt opposite him." | | 10 | "The dead man lay on" | | 11 | "His eyes stared at the" | | 12 | "Quinn followed his gaze upward," | | 13 | "She pulled a pair of" | | 14 | "The torch beam tracked the" | | 15 | "A dark smear marked the" | | 16 | "Quinn leaned closer." | | 17 | "The blood had pooled, yes," | | 18 | "She gestured at the oval" | | 19 | "She pressed two fingers near" |
| | ratio | 0.873 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 55 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 22 | | technicalSentenceCount | 1 | | matches | | 0 | "The shape of it pulled at a memory she didn't want—a memory of Morris, three years gone, and a case that had no clean ending." |
| |
| 50.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 20 | | uselessAdditionCount | 3 | | matches | | 0 | "She pressed, not touching it" | | 1 | "She turned, the torch sweeping the impossible clean floor" | | 2 | "she gestured, the oval of blood, the folded arm" |
| |
| 88.78% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 3 | | fancyTags | | 0 | "she repeated (repeat)" | | 1 | "She pressed (press)" | | 2 | "Quinn rose her knees protesting (protest)" |
| | dialogueSentences | 49 | | tagDensity | 0.184 | | leniency | 0.367 | | rawRatio | 0.333 | | effectiveRatio | 0.122 | |