| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 6 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 4 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1530 | | 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) | |
| 73.86% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1530 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "etched" | | 1 | "weight" | | 2 | "echoing" | | 3 | "long shadow" | | 4 | "echo" | | 5 | "processed" | | 6 | "depths" | | 7 | "resolve" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 1 | | narrationSentences | 58 | | matches | | |
| 44.33% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 4 | | hedgeCount | 0 | | narrationSentences | 58 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 58 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 148 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 12 | | totalWords | 1507 | | ratio | 0.008 | | matches | | 0 | "Enchanted Sigils of the Shade" | | 1 | "Banned Alchemical Substances of the Veil Market" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 7 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 83 | | wordCount | 1343 | | uniqueNames | 20 | | maxNameDensity | 1.04 | | worstName | "Eva" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Veil" | | discoveredNames | | Camden | 1 | | Tube | 3 | | Veil | 13 | | Market | 11 | | London | 1 | | Harlow | 10 | | British | 2 | | Museum | 2 | | Sigils | 1 | | Compass | 1 | | Oxford | 1 | | Morris | 8 | | Shades | 1 | | Shade | 3 | | Alchemical | 1 | | Substances | 1 | | Eva | 14 | | Kael | 4 | | Compasses | 1 | | Forensics | 4 |
| | persons | | 0 | "Market" | | 1 | "Harlow" | | 2 | "Museum" | | 3 | "Sigils" | | 4 | "Compass" | | 5 | "Morris" | | 6 | "Eva" | | 7 | "Kael" | | 8 | "Compasses" | | 9 | "Forensics" |
| | places | | 0 | "Veil" | | 1 | "London" | | 2 | "British" | | 3 | "Shades" |
| | globalScore | 0.979 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 53 | | 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 | 1507 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 58 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 25 | | mean | 60.28 | | std | 42.69 | | cv | 0.708 | | sampleLengths | | 0 | 194 | | 1 | 146 | | 2 | 87 | | 3 | 7 | | 4 | 67 | | 5 | 12 | | 6 | 56 | | 7 | 37 | | 8 | 53 | | 9 | 110 | | 10 | 9 | | 11 | 53 | | 12 | 74 | | 13 | 17 | | 14 | 62 | | 15 | 87 | | 16 | 30 | | 17 | 61 | | 18 | 55 | | 19 | 24 | | 20 | 39 | | 21 | 70 | | 22 | 11 | | 23 | 61 | | 24 | 85 |
| |
| 75.02% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 5 | | totalSentences | 58 | | matches | | 0 | "are meant" | | 1 | "are curled" | | 2 | "were supposed" | | 3 | "been found" | | 4 | "being carried" |
| |
| 19.82% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 6 | | totalVerbs | 222 | | matches | | 0 | "was holding was fighting" | | 1 | "was working" | | 2 | "was lying" | | 3 | "wasn’t lying" | | 4 | "was using" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 20 | | semicolonCount | 1 | | flaggedSentences | 16 | | totalSentences | 58 | | ratio | 0.276 | | matches | | 0 | "The bone token in her right pocket pressed a sharp ridge against her thigh—she’d seized it from a Veil Market peddler six months prior, a loophole to bypass the entry lock he’d bragged about while she cuffed him to a rusted ticket barrier." | | 1 | "Her closely cropped salt-and-pepper hair caught the draft from a rusted ventilation shaft; she didn’t flinch, her military precision dictating every micro-movement, every steady breath." | | 2 | "Her sharp jaw tightened at the scent of damp moss and burnt wax, a stench unique to the hidden market’s transient lairs—one she’d tracked across three London boroughs in the past year, ever since a tip linked the Veil Market to her partner’s unsolved death." | | 3 | "The tape’s red lettering bled into the damp darkness, but Harlow’s eyes locked on it before her flashlight did—18 years of decorated service had honed her peripheral vision to catch the smallest inconsistencies." | | 4 | "A curly red head popped up from beside the brass object. Eva tucked a strand of hair behind her left ear, her round glasses slipping down her freckled nose as she leaned back on her heels, her worn leather satchel—bulging with ancient history tomes from the British Museum’s restricted archives—spilling a tattered copy of *Enchanted Sigils of the Shade* onto the tile. She kicked the book under the bench without looking, a nervous fumble that betrayed her usual academic poise, and wiped her hands on her jeans." | | 5 | "Harlow’s flashlight beam sliced to the object, its light catching the protective sigils etched into its face—sigils she’d seen in that stolen occult file, marked as tools used to track supernatural rifts. She knelt, her movements deliberate, and tilted the compass with her index finger. The needle spun wildly for three beats, then jerked toward the ventilation shaft, its ticking matching the rhythm of her leather watch." | | 6 | "Harlow stood, her sharp jaw set, and crossed her arms. Natural causes my ass. The artisan’s fingers are curled around the compass’s casing. He was holding it when he died. His knuckles are white—he was fighting something." | | 7 | "Harlow’s leather watch ticked louder in her ears, the sound echoing through the empty Tube station. Three years prior, her partner DS Morris had been found slumped against a brick wall in a similar abandoned spot—no wounds, no cause of death, forensics calling it a heart attack. She’d spent every waking hour since digging into the case, uncovering a trail of unsolved deaths linked to the Veil Market, but she’d never connected the sigils until now. She pulled a crumpled photo of Morris from her pocket—his grinning face staring up at her, his arm slung over her shoulder after they’d closed a drug bust—and tucked it back, her movements precise." | | 8 | "Eva tucked another strand of hair behind her left ear, flipping to another marked page with photos of twisted sigils. The rift’s energy is toxic to Shades. It doesn’t leave wounds, but it burns out their internal energy in seconds. Forensics can’t detect it—they don’t have the tools to test for supernatural trauma." | | 9 | "Eva’s green eyes widened, and she pulled a stack of photocopies from her satchel—photos of Morris’s crime scene, marked with red circles around the faint sigils." | | 10 | "She reached into her pocket, pulling out the stolen occult file—its pages crumpled from being carried in her coat for months—and flipped to a marked section." | | 11 | "Eva tucked her hair again, her satchel shifting as she pulled another book from its depths—*Banned Alchemical Substances of the Veil Market*—and flipped to a list of vendors." | | 12 | "She recognized one name—Kael, the peddler she’d seized her bone token from six months prior." | | 13 | "She’d missed the sigils once before, with Morris, but now she saw the missing link—the clique was using the Veil Market’s tools to create unsolved deaths, covering their tracks with forensics’ lazy natural causes calls." | | 14 | "I can get us entry with a spare bone token from the archives—one linked to a trusted vendor who owes me a favor." | | 15 | "She’d spent 18 years chasing loose ends, but now she had a trail—a compass, a list of vendors, a clique linked to Morris’s death." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 270 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 3 | | adverbRatio | 0.011111111111111112 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.003703703703703704 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 58 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 58 | | mean | 25.98 | | std | 25.52 | | cv | 0.982 | | sampleLengths | | 0 | 14 | | 1 | 43 | | 2 | 25 | | 3 | 45 | | 4 | 34 | | 5 | 33 | | 6 | 146 | | 7 | 87 | | 8 | 7 | | 9 | 67 | | 10 | 12 | | 11 | 56 | | 12 | 37 | | 13 | 53 | | 14 | 110 | | 15 | 9 | | 16 | 53 | | 17 | 20 | | 18 | 32 | | 19 | 22 | | 20 | 11 | | 21 | 6 | | 22 | 26 | | 23 | 6 | | 24 | 12 | | 25 | 18 | | 26 | 21 | | 27 | 18 | | 28 | 22 | | 29 | 26 | | 30 | 14 | | 31 | 16 | | 32 | 28 | | 33 | 18 | | 34 | 15 | | 35 | 27 | | 36 | 15 | | 37 | 13 | | 38 | 4 | | 39 | 15 | | 40 | 5 | | 41 | 13 | | 42 | 3 | | 43 | 13 | | 44 | 10 | | 45 | 25 | | 46 | 35 | | 47 | 10 | | 48 | 5 | | 49 | 6 |
| |
| 41.38% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.2413793103448276 | | totalSentences | 58 | | uniqueOpeners | 14 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 58 | | matches | (empty) | | ratio | 0 | |
| 33.79% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 27 | | totalSentences | 58 | | matches | | 0 | "Her closely cropped salt-and-pepper hair" | | 1 | "Her sharp jaw tightened at" | | 2 | "Her worn leather watch glinted" | | 3 | "She ducked under the tape," | | 4 | "You’re saying the rift redirected" | | 5 | "She’d seen a faint echo" | | 6 | "She’d stolen the occult file" | | 7 | "I saw these same twisted" | | 8 | "I thought they were spray" | | 9 | "I cross-referenced the sigils last" | | 10 | "They’re from a banned alchemical" | | 11 | "She reached into her pocket," | | 12 | "I have a list of" | | 13 | "They move with the market" | | 14 | "She recognized one name—Kael, the" | | 15 | "He’d bragged about selling to" | | 16 | "He told me he was" | | 17 | "I thought he was lying." | | 18 | "He wasn’t lying." | | 19 | "They’re using the Veil Market’s" |
| | ratio | 0.466 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 57 | | totalSentences | 58 | | matches | | 0 | "Harlow’s boot crunched broken tile" | | 1 | "The bone token in her" | | 2 | "Her closely cropped salt-and-pepper hair" | | 3 | "Her sharp jaw tightened at" | | 4 | "Her worn leather watch glinted" | | 5 | "The tape’s red lettering bled" | | 6 | "She ducked under the tape," | | 7 | "A curly red head popped" | | 8 | "The brass object is a" | | 9 | "Harlow’s flashlight beam sliced to" | | 10 | "Forensics missed the sigils. They" | | 11 | "Eva pushed her glasses back" | | 12 | "Harlow stood, her sharp jaw" | | 13 | "Eva ran a finger over" | | 14 | "Harlow’s leather watch ticked louder" | | 15 | "You’re saying the rift redirected" | | 16 | "Eva tucked another strand of" | | 17 | "Harlow leaned against the pillar," | | 18 | "She’d seen a faint echo" | | 19 | "She’d stolen the occult file" |
| | ratio | 0.983 | |
| 86.21% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 58 | | matches | | 0 | "If someone’s tampering with the" |
| | ratio | 0.017 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 42 | | technicalSentenceCount | 2 | | matches | | 0 | "A curly red head popped up from beside the brass object. Eva tucked a strand of hair behind her left ear, her round glasses slipping down her freckled nose as s…" | | 1 | "Harlow’s flashlight beam sliced to the object, its light catching the protective sigils etched into its face—sigils she’d seen in that stolen occult file, marke…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 6 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 4 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 0 | | effectiveRatio | 0 | |