| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 26 | | tagDensity | 0.077 | | leniency | 0.154 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1404 | | 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) | |
| 89.32% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1404 | | totalAiIsms | 3 | | 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 | 128 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 128 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 152 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 31 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1404 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 2 | | unquotedAttributions | 0 | | matches | (empty) | |
| 62.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 64 | | wordCount | 1250 | | uniqueNames | 16 | | maxNameDensity | 1.76 | | worstName | "Quinn" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Quinn" | | discoveredNames | | Harlow | 1 | | Quinn | 22 | | Tomás | 1 | | Herrera | 22 | | Camden | 2 | | High | 1 | | Street | 1 | | Raven | 1 | | Nest | 1 | | Soho | 1 | | Saint | 1 | | Christopher | 1 | | Morris | 1 | | Don | 1 | | Rain | 3 | | One | 4 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Tomás" | | 3 | "Herrera" | | 4 | "Saint" | | 5 | "Christopher" | | 6 | "Morris" | | 7 | "One" |
| | places | | 0 | "Camden" | | 1 | "High" | | 2 | "Street" | | 3 | "Raven" | | 4 | "Soho" |
| | globalScore | 0.62 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 102 | | 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 | 1404 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 152 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 73 | | mean | 19.23 | | std | 17.09 | | cv | 0.888 | | sampleLengths | | 0 | 35 | | 1 | 2 | | 2 | 53 | | 3 | 55 | | 4 | 38 | | 5 | 9 | | 6 | 17 | | 7 | 31 | | 8 | 5 | | 9 | 25 | | 10 | 6 | | 11 | 4 | | 12 | 7 | | 13 | 8 | | 14 | 24 | | 15 | 8 | | 16 | 4 | | 17 | 7 | | 18 | 2 | | 19 | 52 | | 20 | 13 | | 21 | 16 | | 22 | 43 | | 23 | 2 | | 24 | 19 | | 25 | 48 | | 26 | 32 | | 27 | 67 | | 28 | 27 | | 29 | 12 | | 30 | 1 | | 31 | 27 | | 32 | 7 | | 33 | 6 | | 34 | 2 | | 35 | 23 | | 36 | 9 | | 37 | 21 | | 38 | 22 | | 39 | 20 | | 40 | 19 | | 41 | 15 | | 42 | 51 | | 43 | 10 | | 44 | 54 | | 45 | 30 | | 46 | 3 | | 47 | 14 | | 48 | 7 | | 49 | 4 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 128 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 209 | | matches | (empty) | |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 0 | | semicolonCount | 2 | | flaggedSentences | 2 | | totalSentences | 152 | | ratio | 0.013 | | matches | | 0 | "A taxi braked and slewed in the rain; its driver hammered the horn." | | 1 | "Glass jars filled a table across from it; one contained a folded paper bird that beat its wings against the lid." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1252 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 14 | | adverbRatio | 0.011182108626198083 | | lyAdverbCount | 0 | | lyAdverbRatio | 0 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 152 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 152 | | mean | 9.24 | | std | 5.78 | | cv | 0.626 | | sampleLengths | | 0 | 7 | | 1 | 28 | | 2 | 2 | | 3 | 3 | | 4 | 17 | | 5 | 11 | | 6 | 5 | | 7 | 17 | | 8 | 5 | | 9 | 10 | | 10 | 14 | | 11 | 26 | | 12 | 1 | | 13 | 11 | | 14 | 13 | | 15 | 13 | | 16 | 9 | | 17 | 10 | | 18 | 7 | | 19 | 13 | | 20 | 7 | | 21 | 11 | | 22 | 5 | | 23 | 12 | | 24 | 6 | | 25 | 7 | | 26 | 6 | | 27 | 4 | | 28 | 7 | | 29 | 8 | | 30 | 5 | | 31 | 19 | | 32 | 8 | | 33 | 4 | | 34 | 7 | | 35 | 2 | | 36 | 6 | | 37 | 5 | | 38 | 7 | | 39 | 18 | | 40 | 7 | | 41 | 9 | | 42 | 13 | | 43 | 4 | | 44 | 12 | | 45 | 7 | | 46 | 15 | | 47 | 7 | | 48 | 4 | | 49 | 10 |
| |
| 62.03% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.3841059602649007 | | totalSentences | 151 | | uniqueOpeners | 58 | |
| 27.32% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 122 | | matches | | 0 | "Then the lights in the" |
| | ratio | 0.008 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 29 | | totalSentences | 122 | | matches | | 0 | "His short curls clung to" | | 1 | "He crossed in front of" | | 2 | "Her shoes struck wet pavement." | | 3 | "She had watched Herrera enter" | | 4 | "He reached the corner and" | | 5 | "Their canvas roofs bellied with" | | 6 | "His fingers clenched around the" | | 7 | "She ducked, drove a shoulder" | | 8 | "His left forearm struck the" | | 9 | "She caught the object beneath" | | 10 | "She picked it up." | | 11 | "She knew the streets above" | | 12 | "She knew the council maps," | | 13 | "He pulled at a gap" | | 14 | "He turned, framed by broken" | | 15 | "He looked over his shoulder" | | 16 | "Her radio gave a burst" | | 17 | "She tried again." | | 18 | "It had warmed in her" | | 19 | "His last words had come" |
| | ratio | 0.238 | |
| 50.16% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 100 | | totalSentences | 122 | | matches | | 0 | "Rain chased the blood along" | | 1 | "Detective Harlow Quinn followed it" | | 2 | "Herrera looked back." | | 3 | "His short curls clung to" | | 4 | "He crossed in front of" | | 5 | "The driver hit the horn." | | 6 | "Quinn caught the rail beside" | | 7 | "Her shoes struck wet pavement." | | 8 | "A man with a paper" | | 9 | "Quinn slipped between two parked" | | 10 | "She had watched Herrera enter" | | 11 | "Herrera had come through the" | | 12 | "Quinn had followed him into" | | 13 | "He reached the corner and" | | 14 | "Their canvas roofs bellied with" | | 15 | "Wind snapped a loose strip" | | 16 | "Herrera stopped beneath a strip" | | 17 | "Water ran down his olive" | | 18 | "His fingers clenched around the" | | 19 | "Herrera glanced past her shoulder." |
| | ratio | 0.82 | |
| 40.98% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 122 | | matches | | 0 | "Now he reached the boards" |
| | ratio | 0.008 | |
| 90.91% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 55 | | technicalSentenceCount | 4 | | matches | | 0 | "She knew the council maps, the CCTV blind spots, the passages that ended at brick." | | 1 | "Quinn had seen him twice outside the Raven’s Nest in Soho, beneath its green neon sign, carrying bags that looked heavy when he went in and light when he came o…" | | 2 | "Her torch picked out a row of cream tiles, an enamel sign with half its letters scraped off, and fresh muddy prints that ended at a locked iron gate." | | 3 | "At the far end of the station, under a sign that read NORTHBOUND, two figures pushed a stretcher between the stalls." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |