| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 11 | | adverbTagCount | 1 | | adverbTags | | 0 | "Herrera said softly [softly]" |
| | dialogueSentences | 16 | | tagDensity | 0.688 | | leniency | 1 | | rawRatio | 0.091 | | effectiveRatio | 0.091 | |
| 89.75% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1464 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "very" | | 1 | "softly" | | 2 | "really" |
| |
| 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) | |
| 45.36% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1464 | | totalAiIsms | 16 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | word | "practiced ease" | | count | 1 |
| | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | |
| | highlights | | 0 | "fractured" | | 1 | "rhythmic" | | 2 | "glint" | | 3 | "scanned" | | 4 | "predator" | | 5 | "gloom" | | 6 | "practiced ease" | | 7 | "weight" | | 8 | "simmering" | | 9 | "footsteps" | | 10 | "gleaming" | | 11 | "mechanical" | | 12 | "silk" | | 13 | "flickered" | | 14 | "velvet" | | 15 | "variables" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "air was thick with" | | count | 1 |
|
| | highlights | | 0 | "The air was thick with" |
| |
| 92.32% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 2 | | narrationSentences | 51 | | matches | | 0 | "looked nervous" | | 1 | "r with pity" |
| |
| 30.81% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 3 | | narrationSentences | 51 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 54 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 86 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1458 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 7 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 56 | | wordCount | 1316 | | uniqueNames | 16 | | maxNameDensity | 1.37 | | worstName | "Quinn" | | maxWindowNameDensity | 3 | | worstWindowName | "Quinn" | | discoveredNames | | Soho | 1 | | Harlow | 2 | | Quinn | 18 | | Raven | 1 | | Nest | 1 | | Herrera | 14 | | Saint | 2 | | Christopher | 2 | | Morris | 4 | | Thames | 1 | | Tube | 1 | | Veil | 3 | | Market | 3 | | Metropolitan | 1 | | Police | 1 | | London | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Raven" | | 3 | "Nest" | | 4 | "Herrera" | | 5 | "Saint" | | 6 | "Christopher" | | 7 | "Morris" | | 8 | "Market" | | 9 | "Police" |
| | places | | 0 | "Soho" | | 1 | "Thames" | | 2 | "London" |
| | globalScore | 0.816 | | windowScore | 0.667 | |
| 84.21% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 38 | | glossingSentenceCount | 1 | | matches | | 0 | "looked like a piece of polished ivory, ca" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1458 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 54 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 38 | | mean | 38.37 | | std | 26.88 | | cv | 0.701 | | sampleLengths | | 0 | 89 | | 1 | 59 | | 2 | 5 | | 3 | 104 | | 4 | 26 | | 5 | 68 | | 6 | 26 | | 7 | 2 | | 8 | 14 | | 9 | 73 | | 10 | 16 | | 11 | 50 | | 12 | 10 | | 13 | 77 | | 14 | 18 | | 15 | 56 | | 16 | 27 | | 17 | 12 | | 18 | 39 | | 19 | 11 | | 20 | 25 | | 21 | 16 | | 22 | 46 | | 23 | 17 | | 24 | 12 | | 25 | 64 | | 26 | 4 | | 27 | 14 | | 28 | 74 | | 29 | 54 | | 30 | 18 | | 31 | 86 | | 32 | 20 | | 33 | 53 | | 34 | 40 | | 35 | 39 | | 36 | 35 | | 37 | 59 |
| |
| 84.62% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 51 | | matches | | 0 | "was layered" | | 1 | "been pulled" | | 2 | "been transformed" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 7 | | totalVerbs | 208 | | matches | | 0 | "was meeting" | | 1 | "was heading" | | 2 | "wasn't heading" | | 3 | "was dissipating" | | 4 | "was already disappearing" | | 5 | "was pulsing" | | 6 | "was helping" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 5 | | semicolonCount | 4 | | flaggedSentences | 8 | | totalSentences | 54 | | ratio | 0.148 | | matches | | 0 | "The rain didn't just fall in Soho; it hammered against the pavement, turning the asphalt into a dark, oil-slicked mirror that fractured the glow of the city." | | 1 | "Her breathing was a steady, rhythmic cycle, deep into the belly and out through the teeth—a habit of military discipline that had never left her, even after eighteen years on the force." | | 2 | "She didn't want his blood tonight; she wanted his answers." | | 3 | "She surged forward. The sedentary weight of the stakeout vanished, replaced by the white-hot clarity of the chase. Her boots struck the pavement with military precision. Herrera dived into the alley, skidding on a discarded take-away container, but he caught himself with his left hand. The long, jagged scar along his forearm—the mark of a knife attack Quinn had seen in his file—flashed in the dim light as he pushed off the wall." | | 4 | "She heard the frantic thud of Herrera’s footsteps descending the iron stairs. Quinn pulled her service weapon, holding it in a low-ready position as she started down. The air changed instantly. The smell of rain and wet garbage gave way to something ancient and metallic—the scent of dry rot, copper, and something sweet, like burning incense." | | 5 | "He turned fully then, holding a small object between his thumb and forefinger. It looked like a piece of polished ivory, carved into the shape of a human vertebra. A bone token. Quinn had seen one before—clutched in Morris’s cold, dead hand when they found him." | | 6 | "He pressed the bone into a knot in the metal door that Quinn hadn't noticed before. There was no mechanical click, no sound of tumblers turning. Instead, the air in the stairwell seemed to depressurize, a sudden pop in Quinn’s ears that made her vision swim. The door didn't swing open; it dissolved, the metal shimmering into a grey mist that Herrera stepped through." | | 7 | "Quinn didn't look back. She holstered her weapon, pulled her coat tight, and stepped onto the platform. She was no longer just a detective; she was a trespasser in a world of ghosts and gold." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 340 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 7 | | adverbRatio | 0.020588235294117647 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.0058823529411764705 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 54 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 54 | | mean | 27 | | std | 22.68 | | cv | 0.84 | | sampleLengths | | 0 | 27 | | 1 | 19 | | 2 | 9 | | 3 | 2 | | 4 | 32 | | 5 | 22 | | 6 | 37 | | 7 | 5 | | 8 | 7 | | 9 | 29 | | 10 | 12 | | 11 | 11 | | 12 | 10 | | 13 | 35 | | 14 | 16 | | 15 | 10 | | 16 | 68 | | 17 | 26 | | 18 | 2 | | 19 | 1 | | 20 | 13 | | 21 | 73 | | 22 | 16 | | 23 | 50 | | 24 | 10 | | 25 | 77 | | 26 | 18 | | 27 | 56 | | 28 | 27 | | 29 | 11 | | 30 | 1 | | 31 | 39 | | 32 | 11 | | 33 | 25 | | 34 | 9 | | 35 | 5 | | 36 | 2 | | 37 | 46 | | 38 | 17 | | 39 | 9 | | 40 | 3 | | 41 | 64 | | 42 | 4 | | 43 | 14 | | 44 | 74 | | 45 | 54 | | 46 | 18 | | 47 | 86 | | 48 | 20 | | 49 | 53 |
| |
| 72.84% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.48148148148148145 | | totalSentences | 54 | | uniqueOpeners | 26 | |
| 75.76% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 44 | | matches | | 0 | "Then the door swung open." |
| | ratio | 0.023 | |
| 38.18% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 20 | | totalSentences | 44 | | matches | | 0 | "She checked the worn leather" | | 1 | "Her breathing was a steady," | | 2 | "It was a local dive," | | 3 | "He pulled a dark jacket" | | 4 | "He looked nervous, his posture" | | 5 | "She didn't want his blood" | | 6 | "She wanted to know why" | | 7 | "She moved with a predator’s" | | 8 | "She surged forward. The sedentary" | | 9 | "He wasn't heading for a" | | 10 | "They tore through the labyrinthine" | | 11 | "She heard the frantic thud" | | 12 | "He froze, his back to" | | 13 | "He turned fully then, holding" | | 14 | "He pressed the bone into" | | 15 | "She reached the threshold and" | | 16 | "It was an abandoned Tube" | | 17 | "She looked at the bone" | | 18 | "She thought of Morris. She" | | 19 | "Her jaw tightened, the sharp" |
| | ratio | 0.455 | |
| 16.82% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 39 | | totalSentences | 44 | | matches | | 0 | "The rain didn't just fall" | | 1 | "Detective Harlow Quinn stood beneath" | | 2 | "She checked the worn leather" | | 3 | "Her breathing was a steady," | | 4 | "It was a local dive," | | 5 | "Tomás Herrera stepped out into" | | 6 | "He pulled a dark jacket" | | 7 | "He looked nervous, his posture" | | 8 | "Quinn adjusted her grip on" | | 9 | "She didn't want his blood" | | 10 | "She wanted to know why" | | 11 | "Herrera turned north, his boots" | | 12 | "Quinn waited five seconds, then" | | 13 | "She moved with a predator’s" | | 14 | "Quinn didn't duck. She didn't" | | 15 | "She surged forward. The sedentary" | | 16 | "He wasn't heading for a" | | 17 | "They tore through the labyrinthine" | | 18 | "Herrera didn't answer. He took" | | 19 | "This was the edge of" |
| | ratio | 0.886 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 44 | | matches | | 0 | "If she turned back now," |
| | ratio | 0.023 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 32 | | technicalSentenceCount | 8 | | matches | | 0 | "The rain didn't just fall in Soho; it hammered against the pavement, turning the asphalt into a dark, oil-slicked mirror that fractured the glow of the city." | | 1 | "Across the street, the distinctive green neon of The Raven's Nest buzzed with a low-frequency hum that set her molars on edge." | | 2 | "They tore through the labyrinthine backstreets, past overflowing bins and the hum of industrial air conditioners. Herrera was younger, lighter, but Quinn had th…" | | 3 | "Herrera didn't answer. He took a sharp right at a dead-end fence, vaulted a low masonry wall, and disappeared into the mouth of a construction site. Quinn follo…" | | 4 | "She heard the frantic thud of Herrera’s footsteps descending the iron stairs. Quinn pulled her service weapon, holding it in a low-ready position as she started…" | | 5 | "He pressed the bone into a knot in the metal door that Quinn hadn't noticed before. There was no mechanical click, no sound of tumblers turning. Instead, the ai…" | | 6 | "It was an abandoned Tube station, but it had been transformed. Thousands of fairy lights and lanterns hung from the rusted girders of the vaulted ceiling, casti…" | | 7 | "With the military precision that defined her, she began to walk, weaving into the throng of the Veil Market, her eyes fixed on the man who held the key to her p…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 10 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 6 | | fancyCount | 4 | | fancyTags | | 0 | "she shouted (shout)" | | 1 | "he whispered (whisper)" | | 2 | "Quinn stated (state)" | | 3 | "She thought (think)" |
| | dialogueSentences | 16 | | tagDensity | 0.375 | | leniency | 0.75 | | rawRatio | 0.667 | | effectiveRatio | 0.5 | |