| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 8 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 21 | | tagDensity | 0.381 | | leniency | 0.762 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1074 | | 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.72% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1074 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "pulse" | | 1 | "glinting" | | 2 | "etched" | | 3 | "silence" | | 4 | "tracing" |
| |
| 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 | 1 | | narrationSentences | 52 | | matches | | |
| 87.91% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 0 | | narrationSentences | 52 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 65 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 96 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1071 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 0 | | matches | (empty) | |
| 33.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 34 | | wordCount | 719 | | uniqueNames | 10 | | maxNameDensity | 2.23 | | worstName | "Quinn" | | maxWindowNameDensity | 4 | | worstWindowName | "Quinn" | | discoveredNames | | Camden | 1 | | Square | 1 | | Harlow | 1 | | Quinn | 16 | | Veil | 2 | | Market | 1 | | Tube | 1 | | Eva | 9 | | Kowalski | 1 | | Compass | 1 |
| | persons | | 0 | "Square" | | 1 | "Harlow" | | 2 | "Quinn" | | 3 | "Market" | | 4 | "Eva" | | 5 | "Kowalski" | | 6 | "Compass" |
| | places | (empty) | | globalScore | 0.387 | | windowScore | 0.333 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 41 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.934 | | wordCount | 1071 | | matches | | 0 | "not pooling but painting" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 65 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 25 | | mean | 42.84 | | std | 29.67 | | cv | 0.693 | | sampleLengths | | 0 | 105 | | 1 | 21 | | 2 | 11 | | 3 | 44 | | 4 | 10 | | 5 | 5 | | 6 | 26 | | 7 | 93 | | 8 | 21 | | 9 | 22 | | 10 | 58 | | 11 | 7 | | 12 | 27 | | 13 | 64 | | 14 | 51 | | 15 | 18 | | 16 | 51 | | 17 | 73 | | 18 | 47 | | 19 | 26 | | 20 | 71 | | 21 | 100 | | 22 | 20 | | 23 | 22 | | 24 | 78 |
| |
| 85.02% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 52 | | matches | | 0 | "been scrubbed" | | 1 | "were untouched" | | 2 | "been scratched" |
| |
| 93.33% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 125 | | matches | | 0 | "wasn't guiding" | | 1 | "was already moving" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 1 | | semicolonCount | 6 | | flaggedSentences | 7 | | totalSentences | 65 | | ratio | 0.108 | | matches | | 0 | "At five-foot-nine, she moved with a military precision that turned every step into a statement; the worn leather watch on her left wrist ticked against her pulse like a second heart." | | 1 | "Vendors had vanished; the market's schedule moved with the moon, but even it had emptied for this." | | 2 | "Her boots pressed the wet tile; the heels came up clean, too clean for a station soaked in red." | | 3 | "He hadn't walked here; someone had carried him, placed him, and arranged the scene like a stagehand." | | 4 | "\"The fingernails are clean. He didn't clutch it in panic; they pressed it into his hand after death. And the stalls—look at them. No goods move, no vendors breathe. The market moves every full moon, Eva, but this station hasn't hosted trade. It's a backdrop.\"" | | 5 | "The protective sigils on the face had been scratched over—new cuts over the old, exposing the needle's mechanism to rift energy, turning a safeguard into a lie." | | 6 | "The compass wasn't guiding anyone to a portal; it was guiding investigators away from the truth." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 725 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 13 | | adverbRatio | 0.01793103448275862 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.009655172413793104 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 65 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 65 | | mean | 16.48 | | std | 14.02 | | cv | 0.851 | | sampleLengths | | 0 | 11 | | 1 | 20 | | 2 | 31 | | 3 | 23 | | 4 | 20 | | 5 | 21 | | 6 | 11 | | 7 | 22 | | 8 | 22 | | 9 | 6 | | 10 | 4 | | 11 | 2 | | 12 | 3 | | 13 | 20 | | 14 | 6 | | 15 | 13 | | 16 | 17 | | 17 | 11 | | 18 | 13 | | 19 | 15 | | 20 | 24 | | 21 | 2 | | 22 | 19 | | 23 | 6 | | 24 | 16 | | 25 | 6 | | 26 | 26 | | 27 | 26 | | 28 | 7 | | 29 | 8 | | 30 | 19 | | 31 | 2 | | 32 | 6 | | 33 | 28 | | 34 | 11 | | 35 | 17 | | 36 | 6 | | 37 | 45 | | 38 | 7 | | 39 | 6 | | 40 | 5 | | 41 | 19 | | 42 | 32 | | 43 | 6 | | 44 | 27 | | 45 | 24 | | 46 | 16 | | 47 | 9 | | 48 | 38 | | 49 | 6 |
| |
| 53.85% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.36923076923076925 | | totalSentences | 65 | | uniqueOpeners | 24 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 43 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 8 | | totalSentences | 43 | | matches | | 0 | "She clutched a worn leather" | | 1 | "Her boots pressed the wet" | | 2 | "Her eyes tracked the blood" | | 3 | "It started at the throat," | | 4 | "He hadn't walked here; someone" | | 5 | "She stepped closer, her satchel" | | 6 | "She knelt by the wall" | | 7 | "She faced Eva." |
| | ratio | 0.186 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 40 | | totalSentences | 43 | | matches | | 0 | "The stairwell beneath Camden Square" | | 1 | "Detective Harlow Quinn descended with" | | 2 | "The Veil Market had shifted" | | 3 | "Stalls of shadow lined the" | | 4 | "Quinn stepped over the threshold," | | 5 | "a voice said" | | 6 | "Eva Kowalski stood by a" | | 7 | "She clutched a worn leather" | | 8 | "Eva gestured with a tilt" | | 9 | "Quinn walked past rows of" | | 10 | "Vendors had vanished; the market's" | | 11 | "The stone platform where a" | | 12 | "A male, early twenties, slumped" | | 13 | "The blood had dried in" | | 14 | "Her boots pressed the wet" | | 15 | "Eva stepped closer, adjusting her" | | 16 | "Quinn's gaze moved past the" | | 17 | "Verdigris patina coated the edges," | | 18 | "Eva tucked her hair behind" | | 19 | "Her eyes tracked the blood" |
| | ratio | 0.93 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 43 | | matches | (empty) | | ratio | 0 | |
| 50.69% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 31 | | technicalSentenceCount | 4 | | matches | | 0 | "Quinn stepped over the threshold, her sharp jaw cutting a hard line beneath brown eyes that had learned not to blink." | | 1 | "Someone had pulled the token from the same stall that sold the compass, used it to stage a ritual, and left the corpse as an offering to a detective already hal…" | | 2 | "The brass compass glinted behind her, its needle pointing the wrong way, its sigils scratched into lies, its verdigris hiding the truth under polished metal." | | 3 | "The market moved with the moon, but the crime was here, solid and ugly and entirely human, and the detective was already moving past the magic, tracing the fail…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 8 | | uselessAdditionCount | 2 | | matches | | 0 | "Eva gestured, her nervous habit repeating in a quick flick" | | 1 | "Quinn said, her voice low and precise" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 21 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0 | | effectiveRatio | 0 | |