| 82.35% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 7 | | adverbTagCount | 1 | | adverbTags | | 0 | "he said quietly [quietly]" |
| | dialogueSentences | 17 | | tagDensity | 0.412 | | leniency | 0.824 | | rawRatio | 0.143 | | effectiveRatio | 0.118 | |
| 90.18% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1528 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "very" | | 1 | "sharply" | | 2 | "slowly" |
| |
| 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) | |
| 80.37% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1528 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "pulse" | | 1 | "calculating" | | 2 | "absolutely" | | 3 | "footsteps" | | 4 | "stomach" | | 5 | "shattered" |
| |
| 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 | 82 | | matches | (empty) | |
| 90.59% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 1 | | narrationSentences | 82 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 91 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 73 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1549 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 10 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 55 | | wordCount | 1423 | | uniqueNames | 27 | | maxNameDensity | 0.7 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | Soho | 2 | | Detective | 2 | | Harlow | 2 | | Quinn | 10 | | Raven | 1 | | Nest | 1 | | Tomás | 1 | | Herrera | 10 | | Saint | 2 | | Christopher | 2 | | Seville | 1 | | London | 2 | | Greek | 1 | | Street | 1 | | Spanish | 1 | | Tottenham | 1 | | Court | 1 | | Road | 1 | | Northern | 1 | | Town | 1 | | Edwardian | 1 | | Camden | 2 | | Bermondsey | 1 | | Morris | 2 | | Veil | 1 | | Market | 1 | | Procedure | 3 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Raven" | | 3 | "Tomás" | | 4 | "Herrera" | | 5 | "Saint" | | 6 | "Christopher" | | 7 | "Morris" | | 8 | "Procedure" |
| | places | | 0 | "Soho" | | 1 | "Seville" | | 2 | "London" | | 3 | "Greek" | | 4 | "Street" | | 5 | "Spanish" | | 6 | "Tottenham" | | 7 | "Court" | | 8 | "Road" | | 9 | "Town" | | 10 | "Camden" | | 11 | "Bermondsey" | | 12 | "Veil" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 55 | | 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 | 1549 | | matches | (empty) | |
| 93.41% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 91 | | matches | | 0 | "swiped that something" | | 1 | "said that the" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 47 | | mean | 32.96 | | std | 27.62 | | cv | 0.838 | | sampleLengths | | 0 | 54 | | 1 | 51 | | 2 | 15 | | 3 | 78 | | 4 | 4 | | 5 | 1 | | 6 | 44 | | 7 | 19 | | 8 | 6 | | 9 | 2 | | 10 | 90 | | 11 | 9 | | 12 | 38 | | 13 | 7 | | 14 | 57 | | 15 | 8 | | 16 | 13 | | 17 | 68 | | 18 | 8 | | 19 | 10 | | 20 | 15 | | 21 | 36 | | 22 | 9 | | 23 | 22 | | 24 | 52 | | 25 | 9 | | 26 | 72 | | 27 | 16 | | 28 | 47 | | 29 | 10 | | 30 | 61 | | 31 | 17 | | 32 | 74 | | 33 | 15 | | 34 | 10 | | 35 | 76 | | 36 | 20 | | 37 | 64 | | 38 | 3 | | 39 | 78 | | 40 | 35 | | 41 | 13 | | 42 | 10 | | 43 | 106 | | 44 | 24 | | 45 | 38 | | 46 | 35 |
| |
| 88.15% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 82 | | matches | | 0 | "been locked" | | 1 | "was riddled" | | 2 | "was carved" | | 3 | "been sealed" |
| |
| 57.55% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 234 | | matches | | 0 | "wasn't running" | | 1 | "was walking" | | 2 | "was allowing" | | 3 | "was standing" | | 4 | "was still closing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 20 | | semicolonCount | 1 | | flaggedSentences | 15 | | totalSentences | 91 | | ratio | 0.165 | | matches | | 0 | "Former paramedic, struck off the NHS register for administering unauthorized treatments — the file had never said to whom." | | 1 | "He ran north, and she gave chase, and Soho folded itself around them — Greek Street, a chinatown alley stinking of cardboard and ginger, a delivery rider cursing them both as Herrera vaulted his bike without breaking stride." | | 2 | "He shouted something in Spanish over his shoulder — a curse, or a prayer — and above the rooftops the clouds tore open for a moment and she saw it: the moon, huge and white and absolutely full." | | 3 | "Herrera plunged down the steps into Tottenham Court Road station, and by the time she reached the barriers he was already through, flashing something at the startled attendant — a card, a token, she couldn't see — and dropping toward the northbound Northern line platform with the fluid certainty of a man who had done this before." | | 4 | "He was up and moving before the announcement finished, and when the doors opened he didn't head for the exit — he went the other way, down the platform's dead end, and swiped that something past a grey staff door that should have been locked and wasn't." | | 5 | "The tiled corridors of the living station fell away behind a fire door, and ahead the tunnel was older — Edwardian cream tile gone the color of teeth, junction boxes trailing cables that led nowhere, the air thick with dust and something else, something mineral and sweet that she couldn't place." | | 6 | "He was walking, fast but unhurried, and she understood with a cold drop in her stomach that he was allowing her to follow — or that he no longer cared whether she did." | | 7 | "London was riddled with them — platforms the public had forgotten, half-built and abandoned a century ago, chained off and left to the dark." | | 8 | "The second was the largest human being Quinn had ever seen — seven feet if it was an inch, wrapped in a coat that might have been cut from a tarpaulin, its face lost in the shadow of a hood." | | 9 | "Herrera reached up and pulled something from under his collar — no, from beneath his shirt alongside the medallion — and his sleeve rode up as he did it, and even in the dark Quinn saw the long pale scar running the length of his left forearm." | | 10 | "\"You're the last through. Market's already folding the edges.\" The guard took what he offered — a small pale disc, and Quinn would have sworn in court that it was carved bone, that it was warm, that it glowed faintly gold in the giant's palm like a coin holding the memory of fire." | | 11 | "Cold air rolled out over the abandoned platform — but cold wasn't the word, it was a coldness with intent, a cold that noticed her — and with it came a smell of myrrh and hot copper and rain that had no business existing underground, and beneath all of it, impossibly, the sound of a crowd." | | 12 | "He didn't need to; she had the distinct, crawling sense that he knew exactly where she was standing, and had known for the last half mile." | | 13 | "Procedure said that the last time she'd gone into a dark place on instinct — a cellar in Bermondsey, a cold that came from nowhere, Morris's flashlight rolling across the floor and stopping — procedure hadn't saved anyone, and the file on what happened down there had been sealed by people she couldn't identify, and she had spent three years waking at four in the morning with the sound of that cold in her ears." | | 14 | "She checked her watch — the leather worn soft as an old saddle, the secondhand ticking through 12:51 — and she thought, absurdly, of Saint Christopher, patron of travelers, and of the last chance Herrera had offered her." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1407 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 43 | | adverbRatio | 0.030561478322672354 | | lyAdverbCount | 16 | | lyAdverbRatio | 0.011371712864250177 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 91 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 91 | | mean | 17.02 | | std | 16.07 | | cv | 0.944 | | sampleLengths | | 0 | 18 | | 1 | 36 | | 2 | 3 | | 3 | 2 | | 4 | 46 | | 5 | 15 | | 6 | 11 | | 7 | 10 | | 8 | 19 | | 9 | 38 | | 10 | 4 | | 11 | 1 | | 12 | 3 | | 13 | 2 | | 14 | 39 | | 15 | 5 | | 16 | 7 | | 17 | 7 | | 18 | 6 | | 19 | 2 | | 20 | 38 | | 21 | 3 | | 22 | 38 | | 23 | 6 | | 24 | 5 | | 25 | 9 | | 26 | 38 | | 27 | 1 | | 28 | 6 | | 29 | 57 | | 30 | 5 | | 31 | 3 | | 32 | 13 | | 33 | 25 | | 34 | 43 | | 35 | 8 | | 36 | 10 | | 37 | 15 | | 38 | 15 | | 39 | 21 | | 40 | 9 | | 41 | 15 | | 42 | 7 | | 43 | 3 | | 44 | 2 | | 45 | 47 | | 46 | 9 | | 47 | 5 | | 48 | 51 | | 49 | 5 |
| |
| 59.34% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.42857142857142855 | | totalSentences | 91 | | uniqueOpeners | 39 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 75 | | matches | | 0 | "Twice the tunnel branched, and" | | 1 | "Then the tunnel opened into" | | 2 | "Then he stepped through, and" | | 3 | "Then Detective Harlow Quinn came" |
| | ratio | 0.053 | |
| 60.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 30 | | totalSentences | 75 | | matches | | 0 | "She knew him from the" | | 1 | "He wore a courier bag" | | 2 | "He didn't run." | | 3 | "He turned, and for two" | | 4 | "His accent was Seville, softened" | | 5 | "He ran north, and she" | | 6 | "He was fast." | | 7 | "He would choose the shortest" | | 8 | "She could cut the angle." | | 9 | "Her knees informed her, sharply," | | 10 | "He shouted something in Spanish" | | 11 | "He'd said tonight of all" | | 12 | "He looked at her reflection," | | 13 | "he said quietly" | | 14 | "He almost smiled" | | 15 | "He turned from the window" | | 16 | "He was up and moving" | | 17 | "Her phone showed no signal." | | 18 | "Her radio produced only a" | | 19 | "She followed the sound of" |
| | ratio | 0.4 | |
| 60.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 60 | | totalSentences | 75 | | matches | | 0 | "The rain had been falling" | | 1 | "Neon bled across the wet" | | 2 | "The Raven's Nest." | | 3 | "She knew him from the" | | 4 | "He wore a courier bag" | | 5 | "Quinn left the doorway." | | 6 | "He didn't run." | | 7 | "He turned, and for two" | | 8 | "His accent was Seville, softened" | | 9 | "He ran north, and she" | | 10 | "He was fast." | | 11 | "He would choose the shortest" | | 12 | "She could cut the angle." | | 13 | "Her knees informed her, sharply," | | 14 | "He shouted something in Spanish" | | 15 | "He'd said tonight of all" | | 16 | "Herrera plunged down the steps" | | 17 | "Quinn showed her warrant card." | | 18 | "The attendant pointed, bewildered, and" | | 19 | "The platform was nearly empty" |
| | ratio | 0.8 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 75 | | matches | (empty) | | ratio | 0 | |
| 47.62% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 45 | | technicalSentenceCount | 6 | | matches | | 0 | "Herrera plunged down the steps into Tottenham Court Road station, and by the time she reached the barriers he was already through, flashing something at the sta…" | | 1 | "He was up and moving before the announcement finished, and when the doors opened he didn't head for the exit — he went the other way, down the platform's dead e…" | | 2 | "The tiled corridors of the living station fell away behind a fire door, and ahead the tunnel was older — Edwardian cream tile gone the color of teeth, junction …" | | 3 | "Her torch swept across a shattered poster hoarding advertising a concert from before she was born, across a platform edge crusted with white mineral bloom, like…" | | 4 | "Cold air rolled out over the abandoned platform — but cold wasn't the word, it was a coldness with intent, a cold that noticed her — and with it came a smell of…" | | 5 | "Procedure said that the last time she'd gone into a dark place on instinct — a cellar in Bermondsey, a cold that came from nowhere, Morris's flashlight rolling …" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 7 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 17 | | tagDensity | 0.294 | | leniency | 0.588 | | rawRatio | 0 | | effectiveRatio | 0 | |