| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 3 | | tagDensity | 0.667 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 73.68% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1520 | | totalAiIsmAdverbs | 8 | | found | | | highlights | | 0 | "carefully" | | 1 | "quickly" | | 2 | "very" | | 3 | "slightly" | | 4 | "perfectly" | | 5 | "intensely" | | 6 | "completely" |
| |
| 80.00% | AI-ism character names | Target: 0 AI-default names (17 tracked, −20% each) | | codexExemptions | (empty) | | found | | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 76.97% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1520 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "gleaming" | | 1 | "footsteps" | | 2 | "could feel" | | 3 | "sense of" | | 4 | "framework" | | 5 | "measured" |
| |
| 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 | 111 | | matches | (empty) | |
| 91.38% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 3 | | hedgeCount | 1 | | narrationSentences | 111 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 112 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 63 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 4 | | markdownWords | 29 | | totalWords | 1533 | | ratio | 0.019 | | matches | | 0 | "You don't know what's on the other side, Harlow. You never do." | | 1 | "cardiac event" | | 2 | "insufficient answers" | | 3 | "if you don't hear from me in two hours, come and get me." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 5 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 44 | | wordCount | 1526 | | uniqueNames | 28 | | maxNameDensity | 0.39 | | worstName | "Herrera" | | maxWindowNameDensity | 1 | | worstWindowName | "Herrera" | | discoveredNames | | Dean | 1 | | Street | 2 | | Raven | 1 | | Nest | 1 | | Herrera | 6 | | Soho | 2 | | Harlow | 1 | | Wardour | 1 | | Covent | 1 | | Garden | 1 | | London | 2 | | Holborn | 1 | | Bloomsbury | 1 | | Euston | 1 | | Road | 2 | | Camden | 3 | | Chalk | 1 | | Farm | 1 | | Town | 1 | | Met | 1 | | Morris | 5 | | Chen | 1 | | Grand | 1 | | Central | 1 | | St | 1 | | English | 2 | | Saint | 1 | | Christopher | 1 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Herrera" | | 3 | "Morris" | | 4 | "Chen" | | 5 | "English" | | 6 | "Saint" | | 7 | "Christopher" |
| | places | | 0 | "Dean" | | 1 | "Street" | | 2 | "Soho" | | 3 | "Wardour" | | 4 | "Covent" | | 5 | "Garden" | | 6 | "London" | | 7 | "Holborn" | | 8 | "Bloomsbury" | | 9 | "Euston" | | 10 | "Road" | | 11 | "Camden" | | 12 | "Chalk" | | 13 | "Farm" | | 14 | "Town" | | 15 | "Grand" | | 16 | "St" |
| | globalScore | 1 | | windowScore | 1 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 76 | | glossingSentenceCount | 5 | | matches | | 0 | "looked like nothing in particular, which" | | 1 | "felt like a different city entirely" | | 2 | "seemed larger than the ground above could account for" | | 3 | "looked like documents, but the text moved" | | 4 | "sounded like English but structured differ" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1533 | | matches | (empty) | |
| 17.86% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 5 | | totalSentences | 112 | | matches | | 0 | "knew that much" | | 1 | "know that various" | | 2 | "was that the" | | 3 | "see that the" | | 4 | "dismantled that sense" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 45 | | mean | 34.07 | | std | 30 | | cv | 0.88 | | sampleLengths | | 0 | 6 | | 1 | 70 | | 2 | 34 | | 3 | 109 | | 4 | 12 | | 5 | 3 | | 6 | 50 | | 7 | 5 | | 8 | 3 | | 9 | 68 | | 10 | 30 | | 11 | 15 | | 12 | 7 | | 13 | 3 | | 14 | 46 | | 15 | 60 | | 16 | 66 | | 17 | 4 | | 18 | 50 | | 19 | 3 | | 20 | 15 | | 21 | 73 | | 22 | 8 | | 23 | 55 | | 24 | 42 | | 25 | 10 | | 26 | 47 | | 27 | 8 | | 28 | 21 | | 29 | 65 | | 30 | 7 | | 31 | 35 | | 32 | 14 | | 33 | 58 | | 34 | 9 | | 35 | 101 | | 36 | 3 | | 37 | 32 | | 38 | 97 | | 39 | 80 | | 40 | 15 | | 41 | 56 | | 42 | 29 | | 43 | 4 | | 44 | 5 |
| |
| 89.46% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 5 | | totalSentences | 111 | | matches | | 0 | "got lost" | | 1 | "was gone" | | 2 | "been rigged" | | 3 | "been swept" | | 4 | "been transformed" | | 5 | "being spoken" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 9 | | totalVerbs | 256 | | matches | | 0 | "was watching" | | 1 | "was building" | | 2 | "wasn't running " | | 3 | "was being" | | 4 | "was checking" | | 5 | "was looking" | | 6 | "was talking" | | 7 | "was beginning" | | 8 | "was doing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 17 | | semicolonCount | 1 | | flaggedSentences | 14 | | totalSentences | 112 | | ratio | 0.125 | | matches | | 0 | "He'd been at the scene of two of the four incidents she was building a case around — \"incidents\" being the polite word for events that had left her with crime scene photographs she kept in a separate locked drawer in her flat, away from the official files, because she couldn't explain them and she didn't want anyone else trying to until she could." | | 1 | "He wasn't running — not yet — but there was a purposeful tightness to his step that she recognised." | | 2 | "She kept a full block behind him, letting the pedestrian traffic — thin as it was in the rain — provide whatever cover was available." | | 3 | "The cab ahead of them turned into Camden, and she felt something shift in her attention — a tightening, the way the air felt before something broke open." | | 4 | "The passage bent twice, and she caught a glimpse of him near the second turn — a flash of dark coat, the gleam of something at his neck." | | 5 | "She moved to the place where she'd last heard him and found a section of hoarding — wooden panels covering what had once been a service entrance to the old station." | | 6 | "Camden Town had redundant tunnels beneath it; she knew that much." | | 7 | "And something else — a smell that didn't belong to rot or concrete or old earth." | | 8 | "It was a low, uneven murmur, like a crowd but stranger — voices overlapping in rhythms that didn't match, in a space that seemed larger than the ground above could account for." | | 9 | "She took out her phone and typed a message to the one number she trusted implicitly — DS Chen, who owed her three favours and asked no questions — with her location, the time, and the words *if you don't hear from me in two hours, come and get me.* She sent it." | | 10 | "A string of bare bulbs had been rigged along the tunnel wall at shoulder height, and in their unsteady yellow light she could see that the floor had been swept clean and that there were marks on the walls — not graffiti, something older-looking, angular shapes pressed into the stone like stamps." | | 11 | "Stalls lined the old platform edges and spilled out across the tracks, lit by lanterns of a dozen different colours — amber, violet, deep arterial red." | | 12 | "She could see a woman — possibly a woman — behind a table of small objects, speaking to a customer in a language that sounded like English but structured differently, like English being spoken by something that had learned it from the outside." | | 13 | "He looked, despite everything, completely at ease — like a man who belonged somewhere, in a way she was beginning to understand she did not." |
| |
| 91.99% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1513 | | adjectiveStacks | 1 | | stackExamples | | | adverbCount | 64 | | adverbRatio | 0.04230006609385327 | | lyAdverbCount | 27 | | lyAdverbRatio | 0.01784534038334435 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 112 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 112 | | mean | 13.69 | | std | 12.46 | | cv | 0.91 | | sampleLengths | | 0 | 6 | | 1 | 37 | | 2 | 6 | | 3 | 10 | | 4 | 17 | | 5 | 4 | | 6 | 15 | | 7 | 5 | | 8 | 4 | | 9 | 6 | | 10 | 64 | | 11 | 8 | | 12 | 37 | | 13 | 9 | | 14 | 3 | | 15 | 3 | | 16 | 15 | | 17 | 19 | | 18 | 16 | | 19 | 5 | | 20 | 3 | | 21 | 20 | | 22 | 25 | | 23 | 4 | | 24 | 11 | | 25 | 8 | | 26 | 5 | | 27 | 25 | | 28 | 12 | | 29 | 3 | | 30 | 7 | | 31 | 3 | | 32 | 18 | | 33 | 28 | | 34 | 14 | | 35 | 28 | | 36 | 18 | | 37 | 3 | | 38 | 34 | | 39 | 29 | | 40 | 4 | | 41 | 28 | | 42 | 5 | | 43 | 17 | | 44 | 3 | | 45 | 7 | | 46 | 4 | | 47 | 2 | | 48 | 2 | | 49 | 31 |
| |
| 38.99% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 18 | | diversityRatio | 0.33035714285714285 | | totalSentences | 112 | | uniqueOpeners | 37 | |
| 94.34% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 106 | | matches | | 0 | "Then she followed." | | 1 | "Then he was gone again," | | 2 | "Then she pulled the panel" |
| | ratio | 0.028 | |
| 27.55% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 51 | | totalSentences | 106 | | matches | | 0 | "She'd been outside for forty" | | 1 | "Her leather watch told her" | | 2 | "She had a name." | | 3 | "He'd been at the scene" | | 4 | "*You don't know what's on" | | 5 | "You never do.*" | | 6 | "He wasn't running — not" | | 7 | "He knew he was being" | | 8 | "She gave him the corner." | | 9 | "He went north on Wardour" | | 10 | "She kept a full block" | | 11 | "He didn't look back." | | 12 | "She'd stopped assuming oblivious about" | | 13 | "He ducked into a cab." | | 14 | "She swore under her breath," | | 15 | "She showed her warrant card" | | 16 | "They went north." | | 17 | "She watched him pay the" | | 18 | "She had her driver stop" | | 19 | "He turned off the main" |
| | ratio | 0.481 | |
| 40.19% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 89 | | totalSentences | 106 | | matches | | 0 | "The rain came down in" | | 1 | "Quinn turned up the collar" | | 2 | "She'd been outside for forty" | | 3 | "Her leather watch told her" | | 4 | "The bar closed at midnight," | | 5 | "She had a name." | | 6 | "Tomás Herrera, twenty-nine years old," | | 7 | "A ghost on paper." | | 8 | "He'd been at the scene" | | 9 | "Morris would have known what" | | 10 | "Morris was three years dead," | | 11 | "*You don't know what's on" | | 12 | "You never do.*" | | 13 | "The door opened." | | 14 | "Herrera came out at eleven-twenty," | | 15 | "He wasn't running — not" | | 16 | "He knew he was being" | | 17 | "She gave him the corner." | | 18 | "He went north on Wardour" | | 19 | "She kept a full block" |
| | ratio | 0.84 | |
| 47.17% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 106 | | matches | | 0 | "What she was looking at" |
| | ratio | 0.009 | |
| 55.39% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 49 | | technicalSentenceCount | 6 | | matches | | 0 | "He turned off the main road into a narrow passage that ran along the back of a row of shuttered market stalls, the kind of Camden labyrinth that tourists got lo…" | | 1 | "It was a low, uneven murmur, like a crowd but stranger — voices overlapping in rhythms that didn't match, in a space that seemed larger than the ground above co…" | | 2 | "The problem was that the last time she'd waited for the sensible thing, she'd been standing over Morris's body trying to explain to paramedics why a man in perf…" | | 3 | "The abandoned station had been transformed into something that had no name in any category she possessed." | | 4 | "She could see a woman — possibly a woman — behind a table of small objects, speaking to a customer in a language that sounded like English but structured differ…" | | 5 | "He looked, despite everything, completely at ease — like a man who belonged somewhere, in a way she was beginning to understand she did not." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |