| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 4 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1155 | | 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) | |
| 17.75% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1155 | | totalAiIsms | 19 | | found | | | highlights | | 0 | "fractured" | | 1 | "pulsed" | | 2 | "familiar" | | 3 | "etched" | | 4 | "glint" | | 5 | "gloom" | | 6 | "echoing" | | 7 | "maw" | | 8 | "streaming" | | 9 | "resolved" | | 10 | "velvet" | | 11 | "crystalline" | | 12 | "could feel" | | 13 | "weight" | | 14 | "pulse" | | 15 | "beacon" | | 16 | "glinting" |
| |
| 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 | 89 | | matches | (empty) | |
| 78.65% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 3 | | hedgeCount | 1 | | narrationSentences | 89 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 91 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 33 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1149 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 3 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 37 | | wordCount | 1122 | | uniqueNames | 18 | | maxNameDensity | 0.89 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | Soho | 1 | | Harlow | 1 | | Quinn | 10 | | Dean | 1 | | Street | 2 | | Raven | 2 | | Nest | 2 | | Metropolitan | 1 | | Police | 1 | | Frith | 1 | | Saint | 2 | | Christopher | 2 | | Herrera | 4 | | Camden | 2 | | Tube | 1 | | Veil | 1 | | Market | 1 | | Morris | 2 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Raven" | | 3 | "Police" | | 4 | "Saint" | | 5 | "Christopher" | | 6 | "Herrera" | | 7 | "Morris" |
| | places | | 0 | "Soho" | | 1 | "Dean" | | 2 | "Street" | | 3 | "Frith" | | 4 | "Camden" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 72 | | glossingSentenceCount | 1 | | matches | | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1149 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 91 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 14 | | mean | 82.07 | | std | 43.25 | | cv | 0.527 | | sampleLengths | | 0 | 126 | | 1 | 106 | | 2 | 89 | | 3 | 95 | | 4 | 82 | | 5 | 17 | | 6 | 126 | | 7 | 95 | | 8 | 172 | | 9 | 40 | | 10 | 18 | | 11 | 76 | | 12 | 26 | | 13 | 81 |
| |
| 97.38% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 89 | | matches | | 0 | "been ripped" | | 1 | "been open" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 183 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 0 | | flaggedSentences | 5 | | totalSentences | 91 | | ratio | 0.055 | | matches | | 0 | "She recognized the pale scar tissue along his left forearm, the jagged line visible even at this distance, and the glint of metal at his throat—a Saint Christopher medallion catching the streetlight." | | 1 | "She lost sight of him for three seconds—an eternity—then spotted the charcoal coat disappearing toward the railway arches near Camden." | | 2 | "The air grew colder, thick with the smell of rust, stagnant water, and something else—ozone and old copper." | | 3 | "Beyond him, the darkness resolved into shapes—wooden stalls draped in velvet, figures moving in the gloom, the murmur of voices conducting business in languages she didn't recognize." | | 4 | "He held up his hand, and she saw the bone token glinting between his fingers—a white, carved thing that looked like a key." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1133 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 17 | | adverbRatio | 0.01500441306266549 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.00353045013239188 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 91 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 91 | | mean | 12.63 | | std | 6.99 | | cv | 0.554 | | sampleLengths | | 0 | 23 | | 1 | 22 | | 2 | 15 | | 3 | 16 | | 4 | 20 | | 5 | 30 | | 6 | 12 | | 7 | 17 | | 8 | 13 | | 9 | 15 | | 10 | 13 | | 11 | 4 | | 12 | 32 | | 13 | 3 | | 14 | 20 | | 15 | 2 | | 16 | 3 | | 17 | 17 | | 18 | 14 | | 19 | 13 | | 20 | 17 | | 21 | 20 | | 22 | 17 | | 23 | 2 | | 24 | 9 | | 25 | 16 | | 26 | 6 | | 27 | 16 | | 28 | 9 | | 29 | 18 | | 30 | 8 | | 31 | 9 | | 32 | 15 | | 33 | 15 | | 34 | 17 | | 35 | 2 | | 36 | 12 | | 37 | 3 | | 38 | 17 | | 39 | 16 | | 40 | 18 | | 41 | 8 | | 42 | 20 | | 43 | 11 | | 44 | 15 | | 45 | 3 | | 46 | 18 | | 47 | 5 | | 48 | 2 | | 49 | 18 |
| |
| 44.07% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.3111111111111111 | | totalSentences | 90 | | uniqueOpeners | 28 | |
| 40.65% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 82 | | matches | | 0 | "Currently off the grid and" |
| | ratio | 0.012 | |
| 83.41% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 28 | | totalSentences | 82 | | matches | | 0 | "She adjusted the worn leather" | | 1 | "She kept her service weapon" | | 2 | "She recognized the pale scar" | | 3 | "He didn't run." | | 4 | "He glided, a subtle limp" | | 5 | "He turned left into a" | | 6 | "She lost sight of him" | | 7 | "She counted them, her lungs" | | 8 | "Her shoes slipped on the" | | 9 | "She caught herself against a" | | 10 | "He vaulted a chain-link fence," | | 11 | "She tore free, fabric ripping," | | 12 | "He glanced back, his eyes" | | 13 | "They crossed under the railway" | | 14 | "She'd called it in twenty" | | 15 | "She was alone." | | 16 | "She descended the first step." | | 17 | "He turned, his head swiveling" | | 18 | "Her weapon remained steady, aimed" | | 19 | "She could feel the weight" |
| | ratio | 0.341 | |
| 8.78% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 74 | | totalSentences | 82 | | matches | | 0 | "Rain fell in sheets over" | | 1 | "Detective Harlow Quinn moved through" | | 2 | "The green glow of the" | | 3 | "Salt-and-pepper hair, closely cropped, clung" | | 4 | "She adjusted the worn leather" | | 5 | "She kept her service weapon" | | 6 | "Military precision guided her stance," | | 7 | "The suspect moved with a" | | 8 | "Olive skin gleamed on his" | | 9 | "Quinn's sharp jaw tightened." | | 10 | "She recognized the pale scar" | | 11 | "He didn't run." | | 12 | "He glided, a subtle limp" | | 13 | "He turned left into a" | | 14 | "Quinn followed, her breath coming" | | 15 | "The passage opened onto a" | | 16 | "She lost sight of him" | | 17 | "Quinn broke into a run," | | 18 | "She counted them, her lungs" | | 19 | "The rain intensified, a curtain" |
| | ratio | 0.902 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 82 | | matches | (empty) | | ratio | 0 | |
| 60.44% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 52 | | technicalSentenceCount | 6 | | matches | | 0 | "Rain fell in sheets over Soho, turning the pavement into a river of black glass that reflected the neon signs in fractured ribbons." | | 1 | "Quinn skidded to a halt at the top of the concrete steps leading down, her heart hammering against her ribs." | | 2 | "A supernatural black market that moved with the full moon, currently stationed beneath Camden in this abandoned station." | | 3 | "The Saint Christopher medallion swung against his chest, catching the light from a flickering fluorescent tube overhead." | | 4 | "Stalls lined the old tracks, tarps flapping in a wind that shouldn't exist underground." | | 5 | "She'd lost her partner, DS Morris, three years ago under circumstances that defied explanation." |
| |
| 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 | |