| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 1 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 92.68% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1366 | | totalAiIsmAdverbs | 2 | | found | | | highlights | | |
| 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) | |
| 78.04% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1366 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "scanned" | | 1 | "silence" | | 2 | "mechanical" | | 3 | "crystal" | | 4 | "weight" | | 5 | "navigate" |
| |
| 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 | 90 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 90 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 90 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 48 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1382 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 2 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 35 | | wordCount | 1381 | | uniqueNames | 18 | | maxNameDensity | 0.72 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | Herrera | 5 | | Raven | 1 | | Nest | 1 | | Dean | 1 | | Street | 2 | | Saint | 1 | | Christopher | 1 | | Shaftesbury | 1 | | Avenue | 1 | | Morris | 3 | | Charing | 1 | | Cross | 1 | | Road | 1 | | London | 1 | | Jubilee | 1 | | Whitechapel | 2 | | Tube | 1 | | Quinn | 10 |
| | persons | | 0 | "Herrera" | | 1 | "Saint" | | 2 | "Christopher" | | 3 | "Morris" | | 4 | "Quinn" |
| | places | | 0 | "Raven" | | 1 | "Dean" | | 2 | "Street" | | 3 | "Shaftesbury" | | 4 | "Avenue" | | 5 | "Charing" | | 6 | "Cross" | | 7 | "Road" | | 8 | "London" | | 9 | "Whitechapel" |
| | globalScore | 1 | | windowScore | 1 | |
| 34.62% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 65 | | glossingSentenceCount | 3 | | matches | | 0 | "quite see" | | 1 | "into what had obviously once been a Tube pl" | | 2 | "not quite fear and not quite recognition but something that lived in the narrow country between them" | | 3 | "not quite recognition but something that lived in the narrow country between them" |
| |
| 55.28% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.447 | | wordCount | 1382 | | matches | | 0 | "not quite fear and not quite recognition but something" | | 1 | "not quite recognition but something" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 90 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 31 | | mean | 44.58 | | std | 34.14 | | cv | 0.766 | | sampleLengths | | 0 | 25 | | 1 | 84 | | 2 | 5 | | 3 | 88 | | 4 | 11 | | 5 | 82 | | 6 | 51 | | 7 | 58 | | 8 | 3 | | 9 | 47 | | 10 | 25 | | 11 | 26 | | 12 | 72 | | 13 | 14 | | 14 | 63 | | 15 | 4 | | 16 | 82 | | 17 | 9 | | 18 | 9 | | 19 | 84 | | 20 | 17 | | 21 | 63 | | 22 | 109 | | 23 | 18 | | 24 | 113 | | 25 | 98 | | 26 | 47 | | 27 | 21 | | 28 | 29 | | 29 | 10 | | 30 | 15 |
| |
| 81.87% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 6 | | totalSentences | 90 | | matches | | 0 | "was gone" | | 1 | "was built" | | 2 | "been opened" | | 3 | "been transformed" | | 4 | "were arranged" | | 5 | "been trained" |
| |
| 78.79% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 220 | | matches | | 0 | "was losing" | | 1 | "was beginning" | | 2 | "was completing" | | 3 | "was sliding" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 16 | | semicolonCount | 0 | | flaggedSentences | 14 | | totalSentences | 90 | | ratio | 0.156 | | matches | | 0 | "She had picked up Herrera's trail outside the Raven's Nest twenty minutes ago — spotted him through the amber fog of the bar's green neon sign as he'd slipped out the side door with his collar turned up and his hands doing something she couldn't quite see." | | 1 | "He had a good stride for his height, controlled and economic, the kind of movement that didn't waste energy — someone trained to think about his body." | | 2 | "She was fit — she had always been fit, even after Morris, even after the months of sitting very still in her flat watching the walls change color in the dark — but Herrera was younger and he knew these streets differently than she did." | | 3 | "His right hand closed on something she couldn't identify from this distance, and when he made his next turn — sharp left, cutting through a narrow pedestrian alley that smelled of old cardboard and chip oil — she counted to three before following." | | 4 | "She stood in the alley with rain hammering her shoulders and scanned the length of it — a dumpster against the left wall, a broken bicycle frame, a fire exit door painted shut so many seasons ago the hinges had rusted into decoration." | | 5 | "Except it hadn't been opened recently — or it had, and recently was relative, because the disturbed rust along its near edge caught the orange light from the alley mouth in a way that told her someone had lifted it within the last few minutes." | | 6 | "She checked her watch — the worn strap, the scratched crystal, her left wrist." | | 7 | "The drop was eight feet onto a concrete shelf, which she handled badly — rolled her left ankle on the landing and bit down on the sound that wanted to come out of her mouth." | | 8 | "The staircase opened into what had obviously once been a Tube platform — curved tile ceiling, the ghost of signage half-scraped from the walls, track beds filled with rubble and decades of sediment." | | 9 | "Dozens of them, draped in dark cloth, lit by lanterns that produced light in colors she couldn't name precisely — amber that was too red, white that was too blue, a greenish luminescence that came from no visible source." | | 10 | "From another, what appeared to be maps — but maps of places with coastlines she didn't recognize, topographies that couldn't correspond to anywhere she had ever been." | | 11 | "Herrera was forty feet ahead, moving through the crowd with his shoulders down, speaking quietly to a figure at one of the stalls — a woman, older, with her grey hair pinned severely and her back to Quinn." | | 12 | "The woman nodded once and the transaction changed shape — names, or something functionally similar, exchanged in low tones, and then a package that the woman retrieved from beneath her table." | | 13 | "She catalogued: exits she could identify, which were two — the stairs she'd come down, and something at the far end of the platform that might be a passage or might be a dead end." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1367 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 50 | | adverbRatio | 0.036576444769568395 | | lyAdverbCount | 19 | | lyAdverbRatio | 0.013899049012435992 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 90 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 90 | | mean | 15.36 | | std | 13.15 | | cv | 0.856 | | sampleLengths | | 0 | 22 | | 1 | 3 | | 2 | 47 | | 3 | 8 | | 4 | 7 | | 5 | 7 | | 6 | 15 | | 7 | 5 | | 8 | 27 | | 9 | 33 | | 10 | 28 | | 11 | 11 | | 12 | 45 | | 13 | 2 | | 14 | 1 | | 15 | 25 | | 16 | 6 | | 17 | 3 | | 18 | 41 | | 19 | 4 | | 20 | 3 | | 21 | 3 | | 22 | 11 | | 23 | 43 | | 24 | 4 | | 25 | 3 | | 26 | 2 | | 27 | 43 | | 28 | 2 | | 29 | 8 | | 30 | 6 | | 31 | 11 | | 32 | 7 | | 33 | 19 | | 34 | 2 | | 35 | 24 | | 36 | 1 | | 37 | 45 | | 38 | 14 | | 39 | 14 | | 40 | 3 | | 41 | 9 | | 42 | 25 | | 43 | 3 | | 44 | 9 | | 45 | 4 | | 46 | 19 | | 47 | 48 | | 48 | 15 | | 49 | 9 |
| |
| 54.81% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 14 | | diversityRatio | 0.4222222222222222 | | totalSentences | 90 | | uniqueOpeners | 38 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 79 | | matches | | 0 | "Then, below all of it," | | 1 | "Once, in a Whitechapel basement." | | 2 | "Once, six weeks later, sitting" |
| | ratio | 0.038 | |
| 57.97% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 32 | | totalSentences | 79 | | matches | | 0 | "She had picked up Herrera's" | | 1 | "She'd been watching the place" | | 2 | "She'd been watching him for" | | 3 | "He had a good stride" | | 4 | "she said to no one" | | 5 | "She was fit — she" | | 6 | "He moved like someone who" | | 7 | "He turned north on Charing" | | 8 | "She decided against it." | | 9 | "She watched him reach into" | | 10 | "His right hand closed on" | | 11 | "He was gone." | | 12 | "She stood in the alley" | | 13 | "She pressed herself against the" | | 14 | "She checked her watch —" | | 15 | "She had her radio, her" | | 16 | "She had approximately zero backup," | | 17 | "She thought about Morris." | | 18 | "She had spent three years" | | 19 | "She was beginning to understand" |
| | ratio | 0.405 | |
| 86.58% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 59 | | totalSentences | 79 | | matches | | 0 | "The rain came down in" | | 1 | "Quinn kept moving." | | 2 | "She had picked up Herrera's" | | 3 | "She'd been watching the place" | | 4 | "She'd been watching him for" | | 5 | "He had a good stride" | | 6 | "The Saint Christopher medallion she'd" | | 7 | "Quinn followed, one hand briefly" | | 8 | "she said to no one" | | 9 | "She was fit — she" | | 10 | "He moved like someone who" | | 11 | "The NHS didn't teach you" | | 12 | "Something else did." | | 13 | "He turned north on Charing" | | 14 | "She decided against it." | | 15 | "She watched him reach into" | | 16 | "His right hand closed on" | | 17 | "He was gone." | | 18 | "She stood in the alley" | | 19 | "She pressed herself against the" |
| | ratio | 0.747 | |
| 63.29% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 79 | | matches | | 0 | "Now she was losing him." |
| | ratio | 0.013 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 45 | | technicalSentenceCount | 14 | | matches | | 0 | "He had a good stride for his height, controlled and economic, the kind of movement that didn't waste energy — someone trained to think about his body." | | 1 | "He moved like someone who had mapped the city through service entrances and alley shortcuts and the unlit spaces between streetlamps, which told her something." | | 2 | "His right hand closed on something she couldn't identify from this distance, and when he made his next turn — sharp left, cutting through a narrow pedestrian al…" | | 3 | "Except it hadn't been opened recently — or it had, and recently was relative, because the disturbed rust along its near edge caught the orange light from the al…" | | 4 | "Below the shelf, a corroded staircase descended into darkness and warm air that smelled of something she had no clean reference for." | | 5 | "But the platform itself had been transformed into something that bore no relationship to any decommissioned station she had ever seen." | | 6 | "Dozens of them, draped in dark cloth, lit by lanterns that produced light in colors she couldn't name precisely — amber that was too red, white that was too blu…" | | 7 | "People moved between them, some ordinary-looking in overcoats and trainers, some in garments that had no obvious era or origin." | | 8 | "From another, what appeared to be maps — but maps of places with coastlines she didn't recognize, topographies that couldn't correspond to anywhere she had ever…" | | 9 | "She catalogued: exits she could identify, which were two — the stairs she'd come down, and something at the far end of the platform that might be a passage or m…" | | 10 | "She catalogued: the people nearest to her, who were three, none of them looking her way." | | 11 | "She catalogued: Herrera, who was completing whatever it was he'd come here to do, who was sliding the package inside his jacket, who would turn in approximately…" | | 12 | "She catalogued, finally: the feeling in her chest that was not quite fear and not quite recognition but something that lived in the narrow country between them." | | 13 | "Eighteen years of service made material in a piece of metal that meant nothing, probably, to anyone in this room." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 1 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 1 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |