| 91.18% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 14 | | adverbTagCount | 2 | | adverbTags | | 0 | "he said quietly [quietly]" | | 1 | "she said suddenly [suddenly]" |
| | dialogueSentences | 34 | | tagDensity | 0.412 | | leniency | 0.824 | | rawRatio | 0.143 | | effectiveRatio | 0.118 | |
| 93.26% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1484 | | 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) | |
| 76.42% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1484 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "footsteps" | | 1 | "echoing" | | 2 | "echoed" | | 3 | "stomach" | | 4 | "scanning" | | 5 | "familiar" | | 6 | "calculating" |
| |
| 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 | 95 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 95 | | filterMatches | (empty) | | hedgeMatches | | 0 | "managed to" | | 1 | "seemed to" |
| |
| 97.45% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 115 | | gibberishSentences | 1 | | adjustedGibberishSentences | 1 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 48 | | ratio | 0.009 | | matches | | 0 | "They descended at a steep angle,墙壁上涂满了涂鸦 even as she watched, shifting like the images were alive, rearranging themselves into symbols she didn't recognize." |
| |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1458 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 13 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 38 | | wordCount | 1173 | | uniqueNames | 19 | | maxNameDensity | 1.19 | | worstName | "Quinn" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Quinn" | | discoveredNames | | London | 1 | | Harlow | 1 | | Quinn | 14 | | Raven | 1 | | Nest | 1 | | Soho | 2 | | Tube | 1 | | Underground | 1 | | Veil | 1 | | Market | 1 | | Metropolitan | 1 | | Police | 1 | | Saint | 1 | | Christopher | 1 | | Spanish | 1 | | Herrera | 2 | | Kavanagh | 1 | | Morris | 2 | | Three | 4 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Raven" | | 3 | "Underground" | | 4 | "Police" | | 5 | "Saint" | | 6 | "Christopher" | | 7 | "Herrera" | | 8 | "Morris" |
| | places | | 0 | "London" | | 1 | "Soho" | | 2 | "Veil" | | 3 | "Market" | | 4 | "Metropolitan" |
| | globalScore | 0.903 | | windowScore | 0.833 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 59 | | glossingSentenceCount | 4 | | matches | | 0 | "seemed possible passing through layers of the city she hadn't known existed" | | 1 | "looked like stone but felt wrong beneath" | | 2 | "quite people" | | 3 | "liquid that seemed to glow, bundles of herbs wrapped in paper that moved on their own, small boxes that whispered when she looked at them too long" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.686 | | wordCount | 1458 | | matches | | 0 | "not as an insult but as fact, his eyes moving over her torch, her empty holster" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 115 | | matches | | 0 | "acknowledging that the" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 48 | | mean | 30.38 | | std | 24.87 | | cv | 0.819 | | sampleLengths | | 0 | 77 | | 1 | 73 | | 2 | 5 | | 3 | 52 | | 4 | 50 | | 5 | 42 | | 6 | 13 | | 7 | 51 | | 8 | 65 | | 9 | 52 | | 10 | 35 | | 11 | 10 | | 12 | 3 | | 13 | 54 | | 14 | 7 | | 15 | 81 | | 16 | 7 | | 17 | 78 | | 18 | 9 | | 19 | 56 | | 20 | 18 | | 21 | 25 | | 22 | 14 | | 23 | 3 | | 24 | 70 | | 25 | 3 | | 26 | 4 | | 27 | 68 | | 28 | 6 | | 29 | 34 | | 30 | 5 | | 31 | 16 | | 32 | 16 | | 33 | 13 | | 34 | 28 | | 35 | 8 | | 36 | 11 | | 37 | 45 | | 38 | 11 | | 39 | 6 | | 40 | 55 | | 41 | 40 | | 42 | 3 | | 43 | 27 | | 44 | 27 | | 45 | 61 | | 46 | 15 | | 47 | 6 |
| |
| 90.49% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 95 | | matches | | 0 | "being hunted" | | 1 | "been garbled" | | 2 | "been sealed" | | 3 | "been abandoned" |
| |
| 74.80% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 213 | | matches | | 0 | "wasn't stopping" | | 1 | "was wearing" | | 2 | "were selling" | | 3 | "was completing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 20 | | semicolonCount | 0 | | flaggedSentences | 17 | | totalSentences | 115 | | ratio | 0.148 | | matches | | 0 | "Eighteen years on the force had taught her body to move with efficiency, but the man ahead of her was fast—faster than expected for someone wearing a coat that heavy." | | 1 | "The response had been garbled—something about unit availability, delayed response times, the usual cuts that came with budget shortfalls." | | 2 | "She could hear him ahead—footsteps echoing off brick, a door slamming, the distant rumble of a train arriving somewhere deep beneath the city." | | 3 | "He reached for something at his belt—a small object that caught the light—and pressed it to the gate's lock." | | 4 | "The man had done something to that lock—no ordinary lock worked without sound, without touch." | | 5 | "Her superiors had looked at her with a particular expression—pity and caution mixed together—and told her the case was closed." | | 6 | "The Tube station had been abandoned for decades—she could see the old signage still clinging to the walls, the faded cream and green of the Underground's early years." | | 7 | "Eighteen years in Metropolitan Police gave a person ears for the impossible stories that circulated through certain circles—the bar in Soho where the maps on the walls were more than maps, the market that appeared and vanished, the people who weren't quite people." | | 8 | "A man approached her—young, olive-skinned, with dark curly hair and warm brown eyes." | | 9 | "His accent was faint, something continental—Spanish, maybe." | | 10 | "The young man's expression shifted—recognition, maybe, or concern." | | 11 | "\"You're not equipped for this.\" He said it not as an insult but as fact, his eyes moving over her torch, her empty holster—she'd left her weapon at the station, too many drinks after shift, a mistake she was now regretting." | | 12 | "The stalls were selling things she couldn't identify—bottles of liquid that seemed to glow, bundles of herbs wrapped in paper that moved on their own, small boxes that whispered when she looked at them too long." | | 13 | "This man—his face, his voice, they were familiar." | | 14 | "Quinn looked at the suspect—Kavanagh—again." | | 15 | "And then he'd vanish—through another exit, another gate, back into the city above where she'd never find him." | | 16 | "Then he reached into his satchel and pulled out a small object—bone, white and smooth, shaped like a teardrop." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1198 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 34 | | adverbRatio | 0.028380634390651086 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.007512520868113523 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 115 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 115 | | mean | 12.68 | | std | 10.2 | | cv | 0.805 | | sampleLengths | | 0 | 20 | | 1 | 27 | | 2 | 30 | | 3 | 9 | | 4 | 25 | | 5 | 20 | | 6 | 19 | | 7 | 5 | | 8 | 27 | | 9 | 2 | | 10 | 23 | | 11 | 12 | | 12 | 19 | | 13 | 10 | | 14 | 9 | | 15 | 9 | | 16 | 33 | | 17 | 6 | | 18 | 5 | | 19 | 2 | | 20 | 18 | | 21 | 23 | | 22 | 10 | | 23 | 13 | | 24 | 3 | | 25 | 15 | | 26 | 34 | | 27 | 3 | | 28 | 1 | | 29 | 48 | | 30 | 7 | | 31 | 5 | | 32 | 20 | | 33 | 2 | | 34 | 1 | | 35 | 5 | | 36 | 5 | | 37 | 3 | | 38 | 17 | | 39 | 24 | | 40 | 13 | | 41 | 7 | | 42 | 28 | | 43 | 4 | | 44 | 30 | | 45 | 19 | | 46 | 7 | | 47 | 5 | | 48 | 43 | | 49 | 3 |
| |
| 53.33% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.3565217391304348 | | totalSentences | 115 | | uniqueOpeners | 41 | |
| 41.15% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 81 | | matches | | 0 | "Then he reached into his" |
| | ratio | 0.012 | |
| 81.73% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 28 | | totalSentences | 81 | | matches | | 0 | "She'd been watching the Raven's" | | 1 | "She was on her own." | | 2 | "She could hear him ahead—footsteps" | | 3 | "He reached for something at" | | 4 | "she shouted down the stairs" | | 5 | "Her voice echoed and died." | | 6 | "She pulled her torch from" | | 7 | "They descended at a steep" | | 8 | "She'd never found out what" | | 9 | "Her superiors had looked at" | | 10 | "She'd heard rumors, of course." | | 11 | "She'd dismissed them." | | 12 | "She'd had to dismiss them," | | 13 | "He was wearing a worn" | | 14 | "His accent was faint, something" | | 15 | "Her voice came out steadier" | | 16 | "He said it not as" | | 17 | "She pushed past the young" | | 18 | "He grabbed her arm" | | 19 | "he said quietly" |
| | ratio | 0.346 | |
| 77.28% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 62 | | totalSentences | 81 | | matches | | 0 | "The rain had been falling" | | 1 | "Detective Harlow Quinn ran through" | | 2 | "She'd been watching the Raven's" | | 3 | "Tonight, finally, someone had emerged" | | 4 | "Quinn had followed him out" | | 5 | "The response had been garbled—something" | | 6 | "She was on her own." | | 7 | "The suspect ducked left into" | | 8 | "She could hear him ahead—footsteps" | | 9 | "The alley dead-ended at a" | | 10 | "He reached for something at" | | 11 | "The gate simply swung open," | | 12 | "Quinn reached the gate seconds" | | 13 | "she shouted down the stairs" | | 14 | "Her voice echoed and died." | | 15 | "She pulled her torch from" | | 16 | "They descended at a steep" | | 17 | "The rain dripped down her" | | 18 | "Quinn had been a detective" | | 19 | "This was wrong." |
| | ratio | 0.765 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 81 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 40 | | technicalSentenceCount | 9 | | matches | | 0 | "Tonight, finally, someone had emerged who matched the description: tall, pale, moving with the nervous energy of a man who knew he was being hunted." | | 1 | "The response had been garbled—something about unit availability, delayed response times, the usual cuts that came with budget shortfalls." | | 2 | "He reached for something at his belt—a small object that caught the light—and pressed it to the gate's lock." | | 3 | "The case that had started as a missing persons and ended with her partner in the hospital, unconscious for two weeks, and Quinn herself waking up in an alley wi…" | | 4 | "Old brick gave way to tile, then to something that looked like stone but felt wrong beneath her torchlight, too smooth, too uniformly grey." | | 5 | "Vendors had set up stalls along the platform, their wares illuminated by lanterns that burned with flames the wrong color: blue, violet, a green so dark it was …" | | 6 | "People moved between the stalls, browsing, haggling, their voices forming a low murmur that somehow managed to feel secretive." | | 7 | "Eighteen years in Metropolitan Police gave a person ears for the impossible stories that circulated through certain circles—the bar in Soho where the maps on th…" | | 8 | "The stalls were selling things she couldn't identify—bottles of liquid that seemed to glow, bundles of herbs wrapped in paper that moved on their own, small box…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 14 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 34 | | tagDensity | 0.265 | | leniency | 0.529 | | rawRatio | 0.111 | | effectiveRatio | 0.059 | |