| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 11 | | adverbTagCount | 1 | | adverbTags | | 0 | "the figure said finally [finally]" |
| | dialogueSentences | 35 | | tagDensity | 0.314 | | leniency | 0.629 | | rawRatio | 0.091 | | effectiveRatio | 0.057 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1368 | | 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) | |
| 81.73% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1368 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "flickered" | | 1 | "standard" | | 2 | "perfect" | | 3 | "weight" |
| |
| 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 | 144 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 144 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 167 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 43 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 4 | | markdownWords | 55 | | totalWords | 1361 | | ratio | 0.04 | | matches | | 0 | "Thirty-eight more steps." | | 1 | "Bingo." | | 2 | "Three years ago. Morris. The case they'd never closed. The things she'd seen in that warehouse that she'd written up as \"unexplained electrical phenomenon\" because the truth would have landed her in psychiatric evaluation." | | 3 | "Walk away. Call it in. Wait for backup like a sensible detective with eighteen years of service." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 8 | | unquotedAttributions | 0 | | matches | (empty) | |
| 90.75% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 40 | | wordCount | 1097 | | uniqueNames | 15 | | maxNameDensity | 1.19 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "Tomás" | | discoveredNames | | London | 2 | | Raven | 2 | | Nest | 2 | | Tomás | 7 | | Herrera | 2 | | Camden | 1 | | Tube | 1 | | Quinn | 13 | | Saint | 1 | | Christopher | 1 | | Seville | 1 | | English | 1 | | Metropolitan | 1 | | Police | 1 | | Morris | 4 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Tomás" | | 3 | "Herrera" | | 4 | "Quinn" | | 5 | "Saint" | | 6 | "Christopher" | | 7 | "Morris" |
| | places | | | globalScore | 0.907 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 73 | | 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 | 1361 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 167 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 61 | | mean | 22.31 | | std | 17.64 | | cv | 0.791 | | sampleLengths | | 0 | 19 | | 1 | 68 | | 2 | 2 | | 3 | 9 | | 4 | 53 | | 5 | 40 | | 6 | 10 | | 7 | 27 | | 8 | 5 | | 9 | 43 | | 10 | 8 | | 11 | 1 | | 12 | 51 | | 13 | 39 | | 14 | 21 | | 15 | 32 | | 16 | 27 | | 17 | 54 | | 18 | 28 | | 19 | 7 | | 20 | 5 | | 21 | 3 | | 22 | 33 | | 23 | 22 | | 24 | 3 | | 25 | 31 | | 26 | 29 | | 27 | 34 | | 28 | 23 | | 29 | 22 | | 30 | 5 | | 31 | 10 | | 32 | 1 | | 33 | 59 | | 34 | 6 | | 35 | 24 | | 36 | 32 | | 37 | 17 | | 38 | 51 | | 39 | 5 | | 40 | 51 | | 41 | 26 | | 42 | 5 | | 43 | 11 | | 44 | 31 | | 45 | 28 | | 46 | 5 | | 47 | 13 | | 48 | 5 | | 49 | 8 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 144 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 191 | | matches | (empty) | |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 0 | | semicolonCount | 0 | | flaggedSentences | 0 | | totalSentences | 167 | | ratio | 0 | | matches | (empty) | |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1104 | | adjectiveStacks | 1 | | stackExamples | | 0 | "former paramedic, current person" |
| | adverbCount | 35 | | adverbRatio | 0.03170289855072464 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.006340579710144928 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 167 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 167 | | mean | 8.15 | | std | 6.79 | | cv | 0.834 | | sampleLengths | | 0 | 9 | | 1 | 10 | | 2 | 2 | | 3 | 16 | | 4 | 18 | | 5 | 3 | | 6 | 11 | | 7 | 18 | | 8 | 2 | | 9 | 2 | | 10 | 4 | | 11 | 3 | | 12 | 13 | | 13 | 23 | | 14 | 3 | | 15 | 14 | | 16 | 10 | | 17 | 2 | | 18 | 2 | | 19 | 7 | | 20 | 15 | | 21 | 3 | | 22 | 1 | | 23 | 7 | | 24 | 3 | | 25 | 23 | | 26 | 4 | | 27 | 5 | | 28 | 6 | | 29 | 22 | | 30 | 15 | | 31 | 4 | | 32 | 4 | | 33 | 1 | | 34 | 10 | | 35 | 5 | | 36 | 10 | | 37 | 11 | | 38 | 15 | | 39 | 4 | | 40 | 7 | | 41 | 17 | | 42 | 4 | | 43 | 3 | | 44 | 4 | | 45 | 4 | | 46 | 17 | | 47 | 2 | | 48 | 11 | | 49 | 6 |
| |
| 65.07% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.437125748502994 | | totalSentences | 167 | | uniqueOpeners | 73 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 8 | | totalSentences | 117 | | matches | | 0 | "Of course he didn't." | | 1 | "Then another gate, another wall" | | 2 | "Just for a second." | | 3 | "Just an open mouth of" | | 4 | "Dark curly hair plastered to" | | 5 | "More than one person." | | 6 | "More than a few." | | 7 | "Somewhere below, she heard voices." |
| | ratio | 0.068 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 30 | | totalSentences | 117 | | matches | | 0 | "He stumbled, recovered, disappeared around" | | 1 | "Her shoulder struck brick as" | | 2 | "She ignored it." | | 3 | "They never did." | | 4 | "Her lungs burned." | | 5 | "She landed hard on the" | | 6 | "Her knees protested." | | 7 | "She gambled on the name" | | 8 | "They'd reached Camden now, or" | | 9 | "He grabbed a drainpipe, swung" | | 10 | "Her fingers found purchase on" | | 11 | "She hauled herself up, over," | | 12 | "Her landing was graceless, ankle" | | 13 | "His accent held traces of" | | 14 | "His English was perfect, but" | | 15 | "He glanced down the stairs." | | 16 | "He took a step backward," | | 17 | "His hand pressed harder against" | | 18 | "Her fingers found her warrant" | | 19 | "She'd spent three years trying" |
| | ratio | 0.256 | |
| 83.93% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 88 | | totalSentences | 117 | | matches | | 0 | "The suspect's boot caught the" | | 1 | "He stumbled, recovered, disappeared around" | | 2 | "Her shoulder struck brick as" | | 3 | "Rain plastered her hair to" | | 4 | "She ignored it." | | 5 | "The figure ahead had slowed," | | 6 | "Blood seeped between his fingers," | | 7 | "They never did." | | 8 | "Quinn's boots splashed through a" | | 9 | "The smell of sour curry" | | 10 | "Her lungs burned." | | 11 | "The suspect burst through a" | | 12 | "Quinn followed, her worn leather" | | 13 | "The strap held." | | 14 | "She landed hard on the" | | 15 | "Her knees protested." | | 16 | "*Thirty-eight more steps.* That's how" | | 17 | "She gambled on the name" | | 18 | "The clinic's records had listed" | | 19 | "The kind of wounds that" |
| | ratio | 0.752 | |
| 42.74% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 117 | | matches | | 0 | "Now he had maybe twenty." |
| | ratio | 0.009 | |
| 76.41% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 43 | | technicalSentenceCount | 4 | | matches | | 0 | "*Thirty-eight more steps.* That's how close he'd been when she'd first spotted him outside the Raven's Nest, climbing out of a back window." | | 1 | "Backup would file reports that would land on the wrong desks, alert the wrong people, and Tomás Herrera would vanish into whatever underground network had prote…" | | 2 | "A face that was all angles and shadows, with eyes that reflected the lantern light like a cat's." | | 3 | "Thought of all the cases over eighteen years that had ended with suspects who shouldn't have been able to do what they'd done, victims whose wounds didn't match…" |
| |
| 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 | 5 | | fancyCount | 1 | | fancyTags | | 0 | "His hand pressed (press)" |
| | dialogueSentences | 35 | | tagDensity | 0.143 | | leniency | 0.286 | | rawRatio | 0.2 | | effectiveRatio | 0.057 | |