| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 10 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 19 | | tagDensity | 0.526 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 90.35% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1036 | | totalAiIsmAdverbs | 2 | | found | | | highlights | | |
| 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) | |
| 71.04% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1036 | | totalAiIsms | 6 | | found | | 0 | | | 1 | | word | "carried the weight" | | count | 1 |
| | 2 | | | 3 | | | 4 | | | 5 | |
| | highlights | | 0 | "pumping" | | 1 | "carried the weight" | | 2 | "stomach" | | 3 | "gloom" | | 4 | "pulsed" | | 5 | "tapestry" |
| |
| 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 | 78 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 78 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 87 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 56 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1027 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 15 | | unquotedAttributions | 1 | | matches | | 0 | "Then, slow, it laughed too." |
| |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 21 | | wordCount | 900 | | uniqueNames | 10 | | maxNameDensity | 0.89 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | Camden | 1 | | High | 1 | | Street | 1 | | Soho | 1 | | Herrera | 3 | | Morris | 3 | | Quinn | 8 | | Veil | 1 | | Market | 1 | | Rain | 1 |
| | persons | | 0 | "Herrera" | | 1 | "Morris" | | 2 | "Quinn" | | 3 | "Rain" |
| | places | | 0 | "Camden" | | 1 | "High" | | 2 | "Street" | | 3 | "Soho" | | 4 | "Market" |
| | globalScore | 1 | | windowScore | 1 | |
| 97.92% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 48 | | glossingSentenceCount | 1 | | matches | | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.974 | | wordCount | 1027 | | matches | | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 87 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 37 | | mean | 27.76 | | std | 22.04 | | cv | 0.794 | | sampleLengths | | 0 | 58 | | 1 | 2 | | 2 | 10 | | 3 | 50 | | 4 | 36 | | 5 | 17 | | 6 | 15 | | 7 | 58 | | 8 | 2 | | 9 | 38 | | 10 | 14 | | 11 | 8 | | 12 | 73 | | 13 | 13 | | 14 | 79 | | 15 | 41 | | 16 | 18 | | 17 | 8 | | 18 | 7 | | 19 | 61 | | 20 | 17 | | 21 | 11 | | 22 | 5 | | 23 | 32 | | 24 | 14 | | 25 | 21 | | 26 | 18 | | 27 | 76 | | 28 | 42 | | 29 | 21 | | 30 | 59 | | 31 | 18 | | 32 | 33 | | 33 | 20 | | 34 | 13 | | 35 | 11 | | 36 | 8 |
| |
| 91.77% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 78 | | matches | | 0 | "was gone" | | 1 | "was shaped" | | 2 | "been given" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 158 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 87 | | ratio | 0.08 | | matches | | 0 | "The torch beam swung wild across the walls—graffiti, a dead pigeon, a steel door rusted shut." | | 1 | "Not tripped—down, deliberate, dropping to his knees beside a sheet of corrugated iron propped against the wall." | | 2 | "Cold air pushed up against her face, and it carried a smell she couldn't place—copper and incense and something sweetly rotten, like flowers left too long in their water." | | 3 | "It meant explaining the thing she couldn't explain—the file she kept in her flat, not the station, the photographs of Morris's last known movements, the way every thread of that case led to people like Herrera and places like this." | | 4 | "She thought of Morris's wife at the funeral, asking her—just asking—what happened." | | 5 | "Stalls stretched into the gloom, and across them spilled things her mind refused to file—jars that pulsed, knives that drank the lamplight rather than reflecting it, cages of birds that didn't move and weren't birds." | | 6 | "\"There are no police here. There is no law you carry that means anything past this cloth. The men who come down with a badge and a gun—\" the rasp almost sounded gentle, \"—they go up again as something else, or they don't go up at all. Is that the trade you want to make?\"" |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 834 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 22 | | adverbRatio | 0.026378896882494004 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.001199040767386091 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 87 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 87 | | mean | 11.8 | | std | 10.59 | | cv | 0.897 | | sampleLengths | | 0 | 19 | | 1 | 20 | | 2 | 19 | | 3 | 2 | | 4 | 3 | | 5 | 4 | | 6 | 3 | | 7 | 28 | | 8 | 12 | | 9 | 10 | | 10 | 6 | | 11 | 14 | | 12 | 16 | | 13 | 9 | | 14 | 3 | | 15 | 5 | | 16 | 7 | | 17 | 8 | | 18 | 17 | | 19 | 4 | | 20 | 17 | | 21 | 20 | | 22 | 2 | | 23 | 3 | | 24 | 2 | | 25 | 29 | | 26 | 4 | | 27 | 9 | | 28 | 5 | | 29 | 8 | | 30 | 6 | | 31 | 14 | | 32 | 29 | | 33 | 5 | | 34 | 1 | | 35 | 3 | | 36 | 15 | | 37 | 13 | | 38 | 2 | | 39 | 37 | | 40 | 40 | | 41 | 2 | | 42 | 39 | | 43 | 12 | | 44 | 6 | | 45 | 8 | | 46 | 7 | | 47 | 9 | | 48 | 24 | | 49 | 19 |
| |
| 79.31% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 1 | | diversityRatio | 0.4827586206896552 | | totalSentences | 87 | | uniqueOpeners | 42 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 67 | | matches | | 0 | "Of course he didn't." | | 1 | "Then he went down." | | 2 | "Then he was gone, swallowed" | | 3 | "Somewhere in the market, something" | | 4 | "Then, slow, it laughed too." |
| | ratio | 0.075 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 20 | | totalSentences | 67 | | matches | | 0 | "He didn't stop." | | 1 | "They never did." | | 2 | "She'd clocked him outside the" | | 3 | "He cut left down an" | | 4 | "Her breath sawed." | | 5 | "She wanted a great deal" | | 6 | "He hauled it aside and" | | 7 | "He looked back." | | 8 | "She knelt there with the" | | 9 | "She'd called none, because calling" | | 10 | "It meant explaining the thing" | | 11 | "She thought of Morris's wife" | | 12 | "she breathed, and went down" | | 13 | "She counted thirty steps, then" | | 14 | "Her torch picked out a" | | 15 | "She held up her warrant" | | 16 | "Her stomach turned over." | | 17 | "She saw Herrera." | | 18 | "She thought of Morris." | | 19 | "Her thumb moved over the" |
| | ratio | 0.299 | |
| 79.40% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 51 | | totalSentences | 67 | | matches | | 0 | "The rain came sideways, slapping" | | 1 | "Quinn ran with her coat" | | 2 | "He didn't stop." | | 3 | "They never did." | | 4 | "She'd clocked him outside the" | | 5 | "Tomás Herrera carried himself like" | | 6 | "He cut left down an" | | 7 | "Quinn followed, her boots skidding" | | 8 | "The torch beam swung wild" | | 9 | "Her breath sawed." | | 10 | "A lie, and they both" | | 11 | "She wanted a great deal" | | 12 | "The alley dead-ended at a" | | 13 | "He hauled it aside and" | | 14 | "He looked back." | | 15 | "The rain ran off the" | | 16 | "Something closer to pity." | | 17 | "Quinn reached the opening and" | | 18 | "The stairwell descended past the" | | 19 | "A market's hum, where there" |
| | ratio | 0.761 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 67 | | matches | (empty) | | ratio | 0 | |
| 75.89% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 32 | | technicalSentenceCount | 3 | | matches | | 0 | "Quinn followed, her boots skidding on the slick cobbles, her shoulder clipping a downpipe." | | 1 | "The rain ran off the dark curls stuck to his forehead, and in the torchlight she caught his eyes, warm brown and wide with something that wasn't quite fear." | | 2 | "Stalls stretched into the gloom, and across them spilled things her mind refused to file—jars that pulsed, knives that drank the lamplight rather than reflectin…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 10 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 97.37% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 1 | | fancyTags | | 0 | "she breathed (breathe)" |
| | dialogueSentences | 19 | | tagDensity | 0.368 | | leniency | 0.737 | | rawRatio | 0.143 | | effectiveRatio | 0.105 | |