| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 8 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 24 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 86.49% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1480 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "sharply" | | 1 | "utterly" | | 2 | "very" |
| |
| 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) | |
| 22.30% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1480 | | totalAiIsms | 23 | | found | | | highlights | | 0 | "rhythmic" | | 1 | "silence" | | 2 | "footsteps" | | 3 | "predator" | | 4 | "vibrated" | | 5 | "gloom" | | 6 | "flicker" | | 7 | "glint" | | 8 | "unreadable" | | 9 | "pulse" | | 10 | "kaleidoscope" | | 11 | "cacophony" | | 12 | "scanning" | | 13 | "measured" | | 14 | "velvet" | | 15 | "echoed" |
| |
| 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 | 122 | | matches | (empty) | |
| 96.02% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 4 | | narrationSentences | 122 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 139 | | 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 | 2 | | markdownWords | 3 | | totalWords | 1474 | | ratio | 0.002 | | matches | | 0 | "splat-slap" | | 1 | "Blood. Fresh." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 5 | | unquotedAttributions | 0 | | matches | (empty) | |
| 87.50% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 31 | | wordCount | 1280 | | uniqueNames | 12 | | maxNameDensity | 1.25 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "Quinn" | | discoveredNames | | Soho | 2 | | Quinn | 16 | | Raven | 1 | | Nest | 2 | | London | 1 | | Herrera | 1 | | Saint | 1 | | Christopher | 1 | | Veil | 1 | | Market | 1 | | Tomás | 3 | | Morris | 1 |
| | persons | | 0 | "Quinn" | | 1 | "Raven" | | 2 | "Herrera" | | 3 | "Saint" | | 4 | "Christopher" | | 5 | "Tomás" | | 6 | "Morris" |
| | places | | 0 | "Soho" | | 1 | "Nest" | | 2 | "London" | | 3 | "Market" |
| | globalScore | 0.875 | | windowScore | 1 | |
| 26.54% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 81 | | glossingSentenceCount | 4 | | matches | | 0 | "things that seemed to hum with a low, guttural energy" | | 1 | "something akin to pity" | | 2 | "silks that seemed to move even when she stood still" | | 3 | "darkness that seemed to swallow the very light from her torch" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.678 | | wordCount | 1474 | | matches | | 0 | "not terrified, but confused, as if the world had simply ceased to make sense" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 139 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 72 | | mean | 20.47 | | std | 16.95 | | cv | 0.828 | | sampleLengths | | 0 | 3 | | 1 | 28 | | 2 | 53 | | 3 | 25 | | 4 | 2 | | 5 | 48 | | 6 | 46 | | 7 | 9 | | 8 | 19 | | 9 | 56 | | 10 | 17 | | 11 | 60 | | 12 | 17 | | 13 | 5 | | 14 | 48 | | 15 | 10 | | 16 | 21 | | 17 | 2 | | 18 | 43 | | 19 | 32 | | 20 | 19 | | 21 | 16 | | 22 | 6 | | 23 | 10 | | 24 | 63 | | 25 | 12 | | 26 | 22 | | 27 | 9 | | 28 | 23 | | 29 | 13 | | 30 | 38 | | 31 | 60 | | 32 | 14 | | 33 | 5 | | 34 | 30 | | 35 | 16 | | 36 | 40 | | 37 | 3 | | 38 | 10 | | 39 | 56 | | 40 | 30 | | 41 | 8 | | 42 | 6 | | 43 | 15 | | 44 | 6 | | 45 | 18 | | 46 | 5 | | 47 | 49 | | 48 | 8 | | 49 | 1 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 122 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 215 | | matches | | 0 | "wasn't wearing" | | 1 | "was weighing" | | 2 | "wasn't running" |
| |
| 19.53% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 1 | | flaggedSentences | 6 | | totalSentences | 139 | | ratio | 0.043 | | matches | | 0 | "As she descended, the sounds of Soho—the distant sirens, the muffled bass from the bars, the hiss of tires on wet asphalt—faded into a vacuum." | | 1 | "Figures moved between them—tall, spindly shapes that moved too smoothly, and shorter, broader things that seemed to hum with a low, guttural energy." | | 2 | "She thought of the way he had looked in those final moments—not terrified, but confused, as if the world had simply ceased to make sense." | | 3 | "The sounds of the market rose to meet her—a cacophony of whispered haggling in tongues she didn't recognise, the clink of strange metals, and the rhythmic tapping of something hard against stone." | | 4 | "She didn't run—running drew attention, and in a place like this, attention was a commodity she couldn't afford." | | 5 | "It didn't just grow; it unfolded, a mass of darkness that seemed to swallow the very light from her torch." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 830 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 17 | | adverbRatio | 0.020481927710843374 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.012048192771084338 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 139 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 139 | | mean | 10.6 | | std | 7.22 | | cv | 0.681 | | sampleLengths | | 0 | 3 | | 1 | 9 | | 2 | 5 | | 3 | 14 | | 4 | 15 | | 5 | 15 | | 6 | 3 | | 7 | 20 | | 8 | 8 | | 9 | 17 | | 10 | 2 | | 11 | 19 | | 12 | 2 | | 13 | 13 | | 14 | 14 | | 15 | 8 | | 16 | 22 | | 17 | 16 | | 18 | 9 | | 19 | 1 | | 20 | 18 | | 21 | 18 | | 22 | 11 | | 23 | 18 | | 24 | 9 | | 25 | 3 | | 26 | 2 | | 27 | 12 | | 28 | 14 | | 29 | 5 | | 30 | 1 | | 31 | 19 | | 32 | 21 | | 33 | 6 | | 34 | 11 | | 35 | 5 | | 36 | 10 | | 37 | 13 | | 38 | 25 | | 39 | 4 | | 40 | 6 | | 41 | 9 | | 42 | 1 | | 43 | 11 | | 44 | 1 | | 45 | 1 | | 46 | 13 | | 47 | 14 | | 48 | 16 | | 49 | 18 |
| |
| 43.65% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 16 | | diversityRatio | 0.33093525179856115 | | totalSentences | 139 | | uniqueOpeners | 46 | |
| 60.61% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 110 | | matches | | 0 | "Only the rhythmic *splat-slap* of" | | 1 | "Instead, her foot hit something" |
| | ratio | 0.018 | |
| 78.18% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 39 | | totalSentences | 110 | | matches | | 0 | "He surged forward, a dark" | | 1 | "Her lungs burned, a sharp," | | 2 | "She ignored it." | | 3 | "She focused on the fraying" | | 4 | "She wiped them with the" | | 5 | "She took the corner too" | | 6 | "She caught a glimpse of" | | 7 | "She rounded a corner and" | | 8 | "They watched her pass with" | | 9 | "She pressed herself against the" | | 10 | "It wasn't just the humidity" | | 11 | "It was a pressure in" | | 12 | "It was a thick, suffocating" | | 13 | "She reached a landing where" | | 14 | "She pulled her flashlight, the" | | 15 | "His olive skin looked sallow" | | 16 | "He wasn't wearing a uniform," | | 17 | "He didn't move" | | 18 | "His warm brown eyes remained" | | 19 | "He stepped forward, the light" |
| | ratio | 0.355 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 104 | | totalSentences | 110 | | matches | | 0 | "The shout died in the" | | 1 | "The suspect didn't even flinch." | | 2 | "He surged forward, a dark" | | 3 | "Harlow Quinn lunged through a" | | 4 | "Her lungs burned, a sharp," | | 5 | "She ignored it." | | 6 | "She focused on the fraying" | | 7 | "Rain lashed against her face," | | 8 | "She wiped them with the" | | 9 | "The man veered sharply left," | | 10 | "She took the corner too" | | 11 | "A sharp jolt of pain" | | 12 | "The alley was a claustrophobic" | | 13 | "Neon light from the main" | | 14 | "She caught a glimpse of" | | 15 | "She rounded a corner and" | | 16 | "The light hummed, a low-frequency" | | 17 | "A group of men in" | | 18 | "They watched her pass with" | | 19 | "Quinn didn't stop." |
| | ratio | 0.945 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 110 | | matches | (empty) | | ratio | 0 | |
| 38.96% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 55 | | technicalSentenceCount | 8 | | matches | | 0 | "The man veered sharply left, ducking into a narrow alleyway that smelled of stale beer and rotting bin bags." | | 1 | "The light hummed, a low-frequency buzz that vibrated in her teeth." | | 2 | "It was a pressure in the ears, a sudden drop in temperature that had nothing to do with the London rain." | | 3 | "Beyond it, the corridor stretched into a cavernous expanse that shouldn't have existed beneath these streets." | | 4 | "The floor transitioned from concrete to uneven stone, worn smooth by centuries of footsteps that shouldn't be here." | | 5 | "Figures moved between them—tall, spindly shapes that moved too smoothly, and shorter, broader things that seemed to hum with a low, guttural energy." | | 6 | "The suspect was moving deeper into the fray, weaving between a merchant selling jars of swirling, iridescent smoke and a woman draped in silks that seemed to mo…" | | 7 | "The suspect screamed, a raw, jagged sound that was cut short by a wet, tearing noise." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 8 | | uselessAdditionCount | 5 | | matches | | 0 | "Quinn called out, her voice sounding thin and brittle in the vastness" | | 1 | "Quinn snapped, her jaw tightening" | | 2 | "He stepped, the light catching the jagged scar on his left forearm" | | 3 | "Quinn said, her voice dropping to a low, dangerous register" | | 4 | "Quinn shouted, her voice cracking" |
| |
| 25.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 3 | | fancyTags | | 0 | "Quinn called out (call out)" | | 1 | "Quinn snapped (snap)" | | 2 | "Quinn shouted (shout)" |
| | dialogueSentences | 24 | | tagDensity | 0.208 | | leniency | 0.417 | | rawRatio | 0.6 | | effectiveRatio | 0.25 | |