| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 9 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 16 | | tagDensity | 0.563 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1072 | | 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) | |
| 76.68% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1072 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "weight" | | 1 | "silence" | | 2 | "churned" | | 3 | "scanning" | | 4 | "silk" |
| |
| 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 | 91 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 91 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 98 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 51 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1063 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 8 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 20 | | wordCount | 954 | | uniqueNames | 10 | | maxNameDensity | 0.63 | | worstName | "Quinn" | | maxWindowNameDensity | 1 | | worstWindowName | "Quinn" | | discoveredNames | | Quinn | 6 | | Herrera | 5 | | Raven | 1 | | Nest | 1 | | Camden | 1 | | High | 1 | | Street | 1 | | Tube | 1 | | Victorian | 1 | | Morris | 2 |
| | persons | | 0 | "Quinn" | | 1 | "Herrera" | | 2 | "Raven" | | 3 | "Tube" | | 4 | "Morris" |
| | places | | 0 | "Camden" | | 1 | "High" | | 2 | "Street" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 58 | | 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 | 1063 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 98 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 35 | | mean | 30.37 | | std | 26.29 | | cv | 0.865 | | sampleLengths | | 0 | 46 | | 1 | 5 | | 2 | 6 | | 3 | 52 | | 4 | 50 | | 5 | 5 | | 6 | 46 | | 7 | 21 | | 8 | 71 | | 9 | 11 | | 10 | 5 | | 11 | 67 | | 12 | 4 | | 13 | 98 | | 14 | 33 | | 15 | 15 | | 16 | 21 | | 17 | 43 | | 18 | 18 | | 19 | 16 | | 20 | 9 | | 21 | 81 | | 22 | 7 | | 23 | 12 | | 24 | 85 | | 25 | 11 | | 26 | 49 | | 27 | 6 | | 28 | 24 | | 29 | 48 | | 30 | 15 | | 31 | 54 | | 32 | 18 | | 33 | 5 | | 34 | 6 |
| |
| 93.70% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 91 | | matches | | 0 | "been bricked" | | 1 | "was gone" | | 2 | "was permitted" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 178 | | matches | | 0 | "was already beginning" | | 1 | "were deciding" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 98 | | ratio | 0.082 | | matches | | 0 | "She knew him now—she'd memorized the file." | | 1 | "The wall there was four meters of soot-blackened Victorian brick, and unless he'd grown wings—" | | 2 | "Herrera glanced back at her once—she caught the gleam of warm brown eyes, the silver chain at his throat catching the glow—and then he was gone, swallowed into the gap." | | 3 | "The reports said a lot of things that meant nothing, that explained nothing, that left her waking at three in the morning with the taste of that night in her mouth—the cold that hadn't been weather, the door that shouldn't have been there, Morris stepping through and not stepping back." | | 4 | "Useless, probably, against whatever made walls breathe—but the weight of it in her hand was the only honest thing she had, and she'd be damned if she went anywhere without it." | | 5 | "For a moment it held her—the warm exhalation of the place washing over her face, the cold rain at her back—and then she was through, stumbling down the first three steps as the wall sealed behind her with a sound like a mouth closing." | | 6 | "Lanterns hung from the ceiling on chains, but no flame she recognized—the light moved inside the glass like something swimming." | | 7 | "Down the row, Herrera glanced back over the heads of the crowd—and saw her." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 966 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 25 | | adverbRatio | 0.025879917184265012 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.004140786749482402 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 98 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 98 | | mean | 10.85 | | std | 9.49 | | cv | 0.875 | | sampleLengths | | 0 | 24 | | 1 | 22 | | 2 | 5 | | 3 | 3 | | 4 | 3 | | 5 | 7 | | 6 | 2 | | 7 | 25 | | 8 | 6 | | 9 | 7 | | 10 | 5 | | 11 | 19 | | 12 | 13 | | 13 | 5 | | 14 | 2 | | 15 | 7 | | 16 | 4 | | 17 | 5 | | 18 | 25 | | 19 | 3 | | 20 | 3 | | 21 | 15 | | 22 | 7 | | 23 | 10 | | 24 | 4 | | 25 | 3 | | 26 | 3 | | 27 | 27 | | 28 | 8 | | 29 | 30 | | 30 | 3 | | 31 | 8 | | 32 | 5 | | 33 | 17 | | 34 | 20 | | 35 | 1 | | 36 | 10 | | 37 | 19 | | 38 | 4 | | 39 | 14 | | 40 | 4 | | 41 | 50 | | 42 | 7 | | 43 | 23 | | 44 | 8 | | 45 | 25 | | 46 | 1 | | 47 | 6 | | 48 | 8 | | 49 | 9 |
| |
| 65.31% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.45918367346938777 | | totalSentences | 98 | | uniqueOpeners | 45 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 80 | | matches | (empty) | | ratio | 0 | |
| 85.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 27 | | totalSentences | 80 | | matches | | 0 | "He didn't stop." | | 1 | "They never did." | | 2 | "She knew him now—she'd memorized" | | 3 | "He had something in his" | | 4 | "She swore and kept moving." | | 5 | "She didn't lose people in" | | 6 | "His answer was to swing" | | 7 | "She almost smiled." | | 8 | "She had him." | | 9 | "He crouched at the base" | | 10 | "She thought of Morris." | | 11 | "She'd told the inquiry she'd" | | 12 | "She'd half believed it herself," | | 13 | "You don't know what's down" | | 14 | "You don't know if you" | | 15 | "She jammed her boot into" | | 16 | "she told it, which was" | | 17 | "She forced her shoulder into" | | 18 | "She turned, fast, weapon up," | | 19 | "She turned back to the" |
| | ratio | 0.338 | |
| 66.25% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 63 | | totalSentences | 80 | | matches | | 0 | "Rain came down in sheets" | | 1 | "He didn't stop." | | 2 | "They never did." | | 3 | "She knew him now—she'd memorized" | | 4 | "He had something in his" | | 5 | "Something he hadn't wanted her" | | 6 | "That alone had been enough." | | 7 | "The alley narrowed, brick walls" | | 8 | "Quinn went over them harder," | | 9 | "She swore and kept moving." | | 10 | "She didn't lose people in" | | 11 | "His answer was to swing" | | 12 | "She almost smiled." | | 13 | "She had him." | | 14 | "The wall there was four" | | 15 | "He crouched at the base" | | 16 | "The brick simply parted, peeling" | | 17 | "Herrera glanced back at her" | | 18 | "Quinn stopped dead." | | 19 | "Rain ran off the end" |
| | ratio | 0.788 | |
| 62.50% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 80 | | matches | | 0 | "As if it were deciding" |
| | ratio | 0.013 | |
| 71.43% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 30 | | technicalSentenceCount | 3 | | matches | | 0 | "Quinn went over them harder, her knee catching the edge, pain flaring white." | | 1 | "The reports said a lot of things that meant nothing, that explained nothing, that left her waking at three in the morning with the taste of that night in her mo…" | | 2 | "Quinn spun, brought the weapon up, found herself staring into the painted bone mask of a stall-keeper who hadn't been there a second before." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 9 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 25.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 2 | | fancyTags | | 0 | "she breathed (breathe)" | | 1 | "she whispered (whisper)" |
| | dialogueSentences | 16 | | tagDensity | 0.313 | | leniency | 0.625 | | rawRatio | 0.4 | | effectiveRatio | 0.25 | |