| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 9 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1395 | | 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) | |
| 74.91% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1395 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "weight" | | 1 | "race" | | 2 | "silence" | | 3 | "mosaic" | | 4 | "silk" | | 5 | "pulse" |
| |
| 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 | 84 | | matches | (empty) | |
| 40.82% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 4 | | hedgeCount | 2 | | narrationSentences | 84 | | 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 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 56 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1413 | | ratio | 0 | | matches | (empty) | |
| 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 | 51 | | wordCount | 1370 | | uniqueNames | 32 | | maxNameDensity | 0.66 | | worstName | "Herrera" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Herrera" | | discoveredNames | | Raven | 1 | | Nest | 2 | | Soho | 2 | | Quinn | 6 | | Frith | 1 | | Street | 2 | | Herrera | 9 | | Met | 1 | | Tuesday | 1 | | Seven | 1 | | Dials | 1 | | Shaftesbury | 1 | | Avenue | 1 | | Lo | 1 | | Tottenham | 1 | | Court | 1 | | Road | 2 | | London | 2 | | Underground | 1 | | Northern | 1 | | Line | 1 | | Delilah | 1 | | Camden | 2 | | Town | 1 | | Airwave | 1 | | High | 1 | | Chalk | 1 | | Farm | 1 | | Victorian | 1 | | Christopher | 1 | | Morris | 1 | | Glock | 1 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Quinn" | | 3 | "Herrera" | | 4 | "Met" | | 5 | "Line" | | 6 | "Delilah" | | 7 | "Christopher" | | 8 | "Morris" | | 9 | "Glock" |
| | places | | 0 | "Soho" | | 1 | "Frith" | | 2 | "Street" | | 3 | "Seven" | | 4 | "Shaftesbury" | | 5 | "Avenue" | | 6 | "Tottenham" | | 7 | "Court" | | 8 | "Road" | | 9 | "London" | | 10 | "Underground" | | 11 | "Camden" | | 12 | "Town" | | 13 | "High" | | 14 | "Chalk" | | 15 | "Farm" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 68 | | glossingSentenceCount | 1 | | matches | | 0 | "spiral that seemed to go on past the edge of it" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1413 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 90 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 30 | | mean | 47.1 | | std | 36.09 | | cv | 0.766 | | sampleLengths | | 0 | 52 | | 1 | 16 | | 2 | 53 | | 3 | 80 | | 4 | 34 | | 5 | 96 | | 6 | 105 | | 7 | 14 | | 8 | 26 | | 9 | 68 | | 10 | 11 | | 11 | 110 | | 12 | 101 | | 13 | 7 | | 14 | 101 | | 15 | 24 | | 16 | 6 | | 17 | 54 | | 18 | 7 | | 19 | 31 | | 20 | 3 | | 21 | 74 | | 22 | 55 | | 23 | 20 | | 24 | 5 | | 25 | 59 | | 26 | 119 | | 27 | 45 | | 28 | 13 | | 29 | 24 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 84 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 216 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 18 | | semicolonCount | 1 | | flaggedSentences | 13 | | totalSentences | 90 | | ratio | 0.144 | | matches | | 0 | "He looked both ways — not for traffic — then moved north at pace." | | 1 | "She knew the exact moment — a hitch in his stride, the small recalibration of a man who has done this before — and then he simply ran." | | 2 | "Herrera was fast, but he wasn't a runner; he was a man who knew the geometry of the city, every alley that doubled back, every kerb that would trip an unwary pursuer." | | 3 | "He hurled a sandwich board behind him without breaking stride, apologised — actually apologised — to a woman he shoulder-checked near Shaftesbury Avenue, Lo siento, perdone, and kept going." | | 4 | "A man fighting for his freedom, and he didn't hit her — just twisted, dropped his weight, and tore himself loose with a sound of ripping canvas." | | 5 | "The northbound Northern Line was the usual midnight disaster — a judder of sickly light, a few drunks, a man singing something mournful about a woman named Delilah." | | 6 | "Herrera turned up Chalk Farm Road with the steadiness of a man who could see a finish line, past the lock shops and the closed market stalls, and stopped — she flattened herself behind a skip three doors back — in front of a bricked-up arch squeezed between a phone repair shop and a fried chicken place." | | 7 | "A figure filled the gap — tall, too tall, in a long coat, holding a lantern that cast no shadow she could find." | | 8 | "Her watch said 23:58, and above the rooftops, through a tear in the cloud, the full moon showed itself like an eye opening — and she understood, with the cold, sliding certainty of eighteen years of instinct, that this door was only here tonight, and that some doors did not open twice." | | 9 | "The passage went down in a tight helix, brick sweating on both sides, and the air changed halfway — dry, warm, smelling of tallow and hot iron, of animals and old paper." | | 10 | "An abandoned one — faded enamel signage, a mosaic of peacocks gone grey, a warning lettered in flaking paint: MIND THE GAP, worn down over the decades to IND THE GAP." | | 11 | "A crowd — if it was a crowd — shifting and murmuring like a hive inside a bell jar, and overhead, impossible, a soft white glow through a dome of brick that fell across everything like moonlight." | | 12 | "Quinn stepped off the platform edge into the light, and her watch — the last honest thing down here — ticked against her pulse." |
| |
| 88.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1356 | | adjectiveStacks | 2 | | stackExamples | | 0 | "shoulder-checked near Shaftesbury" | | 1 | "grey, wrong-jointed hand." |
| | adverbCount | 31 | | adverbRatio | 0.022861356932153392 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.004424778761061947 | |
| 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.7 | | std | 12.11 | | cv | 0.772 | | sampleLengths | | 0 | 20 | | 1 | 32 | | 2 | 1 | | 3 | 15 | | 4 | 3 | | 5 | 21 | | 6 | 15 | | 7 | 14 | | 8 | 6 | | 9 | 5 | | 10 | 21 | | 11 | 9 | | 12 | 8 | | 13 | 4 | | 14 | 27 | | 15 | 6 | | 16 | 28 | | 17 | 5 | | 18 | 30 | | 19 | 32 | | 20 | 29 | | 21 | 11 | | 22 | 39 | | 23 | 4 | | 24 | 7 | | 25 | 27 | | 26 | 17 | | 27 | 14 | | 28 | 18 | | 29 | 8 | | 30 | 44 | | 31 | 3 | | 32 | 9 | | 33 | 12 | | 34 | 11 | | 35 | 28 | | 36 | 23 | | 37 | 8 | | 38 | 51 | | 39 | 6 | | 40 | 13 | | 41 | 57 | | 42 | 14 | | 43 | 11 | | 44 | 4 | | 45 | 3 | | 46 | 23 | | 47 | 23 | | 48 | 29 | | 49 | 2 |
| |
| 56.93% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.4157303370786517 | | totalSentences | 89 | | uniqueOpeners | 37 | |
| 82.30% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 81 | | matches | | 0 | "Then he was gone, down" | | 1 | "Just threads, and this was" |
| | ratio | 0.025 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 24 | | totalSentences | 81 | | matches | | 0 | "He looked both ways —" | | 1 | "It was discipline, not mercy." | | 2 | "He left the Nest after" | | 3 | "He carried the bag." | | 4 | "He clocked her at Seven" | | 5 | "She knew the exact moment" | | 6 | "He hurled a sandwich board" | | 7 | "She caught him at a" | | 8 | "He didn't hit her." | | 9 | "he said, in an accent" | | 10 | "It was warm." | | 11 | "She pocketed it and ran" | | 12 | "She stood her ground and" | | 13 | "He rapped the brick." | | 14 | "She held up the bone" | | 15 | "it said, in a voice" | | 16 | "Her radio was static." | | 17 | "Her backup was a mile" | | 18 | "Her watch said 23:58, and" | | 19 | "She remembered his torch spinning" |
| | ratio | 0.296 | |
| 27.90% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 70 | | totalSentences | 81 | | matches | | 0 | "The green neon of the" | | 1 | "Harlow Quinn stood in a" | | 2 | "The worn leather strap of" | | 3 | "The door opened." | | 4 | "Tomás Herrera stepped out with" | | 5 | "He looked both ways —" | | 6 | "Quinn gave him half a" | | 7 | "It was discipline, not mercy." | | 8 | "Herrera was the thread that" | | 9 | "He left the Nest after" | | 10 | "He carried the bag." | | 11 | "Nobody bled out in Soho" | | 12 | "He clocked her at Seven" | | 13 | "She knew the exact moment" | | 14 | "Rain came down in ropes." | | 15 | "Quinn took off after him," | | 16 | "Herrera was fast, but he" | | 17 | "He hurled a sandwich board" | | 18 | "She caught him at a" | | 19 | "He didn't hit her." |
| | ratio | 0.864 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 81 | | matches | (empty) | | ratio | 0 | |
| 57.14% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 50 | | technicalSentenceCount | 6 | | matches | | 0 | "She knew the exact moment — a hitch in his stride, the small recalibration of a man who has done this before — and then he simply ran." | | 1 | "Got two fingers into his collar, wrenching him around, and for one second they were chest to chest in the dry dark under the shop awning, his warm brown eyes wi…" | | 2 | "Then he was gone, down the station steps, and Quinn dropped to one knee and found the thing in the lamplight: a disc of bone, small as a two-pound coin, carved …" | | 3 | "Herrera turned up Chalk Farm Road with the steadiness of a man who could see a finish line, past the lock shops and the closed market stalls, and stopped — she …" | | 4 | "She remembered his torch spinning across wet cobblestones, the beam catching things she had never told the review board she saw, and three years of nothing sinc…" | | 5 | "A crowd — if it was a crowd — shifting and murmuring like a hive inside a bell jar, and overhead, impossible, a soft white glow through a dome of brick that fel…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 3 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 9 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0 | | effectiveRatio | 0 | |