| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 7 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 10 | | tagDensity | 0.7 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1476 | | 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) | |
| 79.67% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1476 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "clenching" | | 1 | "flickered" | | 2 | "stark" | | 3 | "etched" | | 4 | "clandestine" | | 5 | "pulse" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 1 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 2 |
|
| | highlights | | 0 | "eyes widened" | | 1 | "eyes narrowed" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 50 | | matches | (empty) | |
| 0.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 5 | | hedgeCount | 1 | | narrationSentences | 50 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 51 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 124 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1480 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 54 | | wordCount | 1416 | | uniqueNames | 24 | | maxNameDensity | 0.78 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "Quinn" | | discoveredNames | | Soho | 3 | | Harlow | 1 | | Quinn | 11 | | Raven | 2 | | Nest | 3 | | Herrera | 7 | | Wardour | 1 | | Street | 3 | | Saint | 2 | | Christopher | 2 | | Berwick | 1 | | Hendon | 1 | | West | 1 | | End | 1 | | Morris | 4 | | King | 1 | | Cross | 1 | | Oxford | 1 | | Tube | 2 | | Seville | 1 | | London | 1 | | Veil | 1 | | Market | 1 | | Camden | 2 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Raven" | | 3 | "Herrera" | | 4 | "Saint" | | 5 | "Christopher" | | 6 | "Morris" | | 7 | "King" | | 8 | "Cross" |
| | places | | 0 | "Soho" | | 1 | "Nest" | | 2 | "Wardour" | | 3 | "Street" | | 4 | "Berwick" | | 5 | "Hendon" | | 6 | "West" | | 7 | "End" | | 8 | "Oxford" | | 9 | "Seville" | | 10 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 21.79% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 39 | | glossingSentenceCount | 2 | | matches | | 0 | "as if checking the time could anchor her" | | 1 | "looked like a construction site. No, not" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1480 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 51 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 33 | | mean | 44.85 | | std | 35.75 | | cv | 0.797 | | sampleLengths | | 0 | 10 | | 1 | 99 | | 2 | 3 | | 3 | 99 | | 4 | 5 | | 5 | 51 | | 6 | 17 | | 7 | 39 | | 8 | 12 | | 9 | 5 | | 10 | 97 | | 11 | 64 | | 12 | 16 | | 13 | 80 | | 14 | 114 | | 15 | 42 | | 16 | 52 | | 17 | 80 | | 18 | 27 | | 19 | 13 | | 20 | 41 | | 21 | 15 | | 22 | 61 | | 23 | 125 | | 24 | 5 | | 25 | 21 | | 26 | 67 | | 27 | 87 | | 28 | 13 | | 29 | 9 | | 30 | 65 | | 31 | 23 | | 32 | 23 |
| |
| 98.25% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 50 | | matches | | |
| 3.09% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 7 | | totalVerbs | 237 | | matches | | 0 | "was breathing" | | 1 | "was heading" | | 2 | "was running" | | 3 | "was driving" | | 4 | "was looking" | | 5 | "wasn't looking" | | 6 | "were heaving" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 4 | | semicolonCount | 0 | | flaggedSentences | 3 | | totalSentences | 51 | | ratio | 0.059 | | matches | | 0 | "The passage ended at a chain-link fence surrounding what looked like a construction site. No, not a construction site. An old Tube entrance, bricked up years ago, the roundel faded and half-covered in scaffolding. A sign read CLOSED - NO ENTRY. Camden. She had run nearly two miles without even realizing it." | | 1 | "He turned and pressed his palm against the old tile beside the sealed doors. For a heartbeat nothing happened. Then he pulled something from inside his jacket - small, yellowed, carved - a bone token, no larger than a coin, etched with a symbol she couldn't make out in the rain. He pressed it to the tile and the air changed." | | 2 | "Quinn felt it before she saw it. A pressure drop, like going down too fast in a lift. The smell of ozone sharpened until her fillings ached. The brick seemed to soften. The sealed doors shivered and then, impossibly, eased inward a few inches, spilling out warm, amber light and noise - voices haggling, glass clinking, a low murmur that was too many languages at once. The Veil Market. She had heard the name in whispers from informants and dismissed it as street legend, a story junkies told. A hidden supernatural black market that sold enchanted goods, banned alchemical substances and information, that moved locations every full moon. And tonight it was here, in an abandoned Tube station beneath Camden, exactly where it shouldn't be." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 282 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 10 | | adverbRatio | 0.03546099290780142 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.010638297872340425 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 51 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 51 | | mean | 29.02 | | std | 30.64 | | cv | 1.056 | | sampleLengths | | 0 | 10 | | 1 | 36 | | 2 | 26 | | 3 | 18 | | 4 | 10 | | 5 | 1 | | 6 | 8 | | 7 | 3 | | 8 | 15 | | 9 | 21 | | 10 | 2 | | 11 | 28 | | 12 | 5 | | 13 | 4 | | 14 | 10 | | 15 | 14 | | 16 | 5 | | 17 | 6 | | 18 | 16 | | 19 | 29 | | 20 | 17 | | 21 | 39 | | 22 | 11 | | 23 | 1 | | 24 | 5 | | 25 | 97 | | 26 | 64 | | 27 | 16 | | 28 | 80 | | 29 | 114 | | 30 | 42 | | 31 | 52 | | 32 | 80 | | 33 | 25 | | 34 | 2 | | 35 | 13 | | 36 | 29 | | 37 | 7 | | 38 | 5 | | 39 | 15 | | 40 | 61 | | 41 | 125 | | 42 | 5 | | 43 | 21 | | 44 | 67 | | 45 | 87 | | 46 | 13 | | 47 | 9 | | 48 | 65 | | 49 | 23 |
| |
| 70.67% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.46 | | totalSentences | 50 | | uniqueOpeners | 23 | |
| 70.92% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 47 | | matches | | 0 | "Then she squeezed through the" |
| | ratio | 0.021 | |
| 41.28% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 47 | | matches | | 0 | "She checked the worn leather" | | 1 | "She knew what he was." | | 2 | "He moved fast, head down," | | 3 | "She pushed off the wall." | | 4 | "He didn't see her at" | | 5 | "She kept her distance, her" | | 6 | "He glanced over his shoulder" | | 7 | "His warm brown eyes widened." | | 8 | "Her voice cut through the" | | 9 | "He didn't stop. He bolted." | | 10 | "He vaulted a low barrier" | | 11 | "she shouted, and the name" | | 12 | "He didn't answer. He was" | | 13 | "he panted, his accent thicker" | | 14 | "she ordered, trying to keep" | | 15 | "I know you've been supplying" | | 16 | "I know about the" | | 17 | "He shook his head, water" | | 18 | "He turned and pressed his" | | 19 | "Her hand found the cold" |
| | ratio | 0.447 | |
| 23.83% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 41 | | totalSentences | 47 | | matches | | 0 | "The rain had turned Soho" | | 1 | "Detective Harlow Quinn stood with" | | 2 | "The distinctive green neon sign" | | 3 | "She checked the worn leather" | | 4 | "The bar should have closed" | | 5 | "The door opened." | | 6 | "Light spilled out for half" | | 7 | "Quinn recognized the short curly" | | 8 | "She knew what he was." | | 9 | "Fixer for the clique." | | 10 | "He moved fast, head down," | | 11 | "She pushed off the wall." | | 12 | "He didn't see her at" | | 13 | "The street was empty except" | | 14 | "She kept her distance, her" | | 15 | "He glanced over his shoulder" | | 16 | "His warm brown eyes widened." | | 17 | "Her voice cut through the" | | 18 | "He didn't stop. He bolted." | | 19 | "Quinn swore and went after" |
| | ratio | 0.872 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 47 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 30 | | technicalSentenceCount | 7 | | matches | | 0 | "Off-the-books medical care for people who didn't want questions asked." | | 1 | "Quinn swore and went after him, her jaw clenching until the sharp line of it ached. Her boots hit the slick pavement and sent up a splash with every step. Herre…" | | 2 | "Three years ago she had chased another man through rain like this. DS Morris had been beside her then, laughing, telling her she ran like a soldier. They had tu…" | | 3 | "Herrera cut east on Oxford Street and then, without warning, ducked down a side passage that stank of damp and traffic fumes. Quinn followed, her hand going to …" | | 4 | "Quinn felt it before she saw it. A pressure drop, like going down too fast in a lift. The smell of ozone sharpened until her fillings ached. The brick seemed to…" | | 5 | "But another instinct, the one that had kept her watching the dimly lit bar in Soho for four nights straight, the one that had stared at the old maps and black-a…" | | 6 | "She thought of Morris's torch flickering out. She thought of Herrera's scar and the Saint Christopher around his neck, a man who had once sworn to do no harm an…" |
| |
| 25.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 5 | | uselessAdditionCount | 1 | | matches | | 0 | "she shouted, and the name came out ragged" |
| |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 3 | | fancyTags | | 0 | "she shouted (shout)" | | 1 | "he panted (pant)" | | 2 | "she ordered (order)" |
| | dialogueSentences | 10 | | tagDensity | 0.3 | | leniency | 0.6 | | rawRatio | 1 | | effectiveRatio | 0.6 | |