| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 4 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 6 | | tagDensity | 0.667 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1322 | | 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) | |
| 77.31% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1322 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "streaming" | | 1 | "standard" | | 2 | "grave" | | 3 | "echoed" | | 4 | "etched" | | 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 | 95 | | matches | (empty) | |
| 97.74% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 1 | | narrationSentences | 95 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 97 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 41 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1299 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 2 | | unquotedAttributions | 0 | | matches | (empty) | |
| 98.62% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 58 | | wordCount | 1265 | | uniqueNames | 25 | | maxNameDensity | 1.03 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "Quinn" | | discoveredNames | | Harlow | 2 | | Quinn | 13 | | Metropolitan | 2 | | Police | 2 | | Christopher | 1 | | Herrera | 10 | | Glock | 1 | | Underground | 1 | | Tottenham | 1 | | Court | 1 | | Road | 1 | | Raven | 1 | | Nest | 1 | | Tube | 1 | | Doppler | 1 | | Morris | 7 | | Camden | 3 | | Lux | 1 | | Brylcreem | 1 | | Seville | 1 | | Bethnal | 1 | | Green | 1 | | Town | 1 | | Veil | 2 | | Market | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Police" | | 3 | "Christopher" | | 4 | "Herrera" | | 5 | "Raven" | | 6 | "Nest" | | 7 | "Morris" | | 8 | "Brylcreem" | | 9 | "Green" | | 10 | "Veil" | | 11 | "Market" |
| | places | | 0 | "Underground" | | 1 | "Tottenham" | | 2 | "Court" | | 3 | "Road" | | 4 | "Tube" | | 5 | "Camden" | | 6 | "Seville" | | 7 | "Town" |
| | globalScore | 0.986 | | windowScore | 1 | |
| 84.21% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 76 | | glossingSentenceCount | 2 | | matches | | 0 | "looked like compacted ash or bone, etched" | | 1 | "quite surrender" |
| |
| 46.04% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.54 | | wordCount | 1299 | | matches | | 0 | "not steel, but bone" | | 1 | "not to a weapon, but to his throat" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 97 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 27 | | mean | 48.11 | | std | 29.21 | | cv | 0.607 | | sampleLengths | | 0 | 64 | | 1 | 6 | | 2 | 93 | | 3 | 53 | | 4 | 87 | | 5 | 62 | | 6 | 65 | | 7 | 96 | | 8 | 76 | | 9 | 12 | | 10 | 49 | | 11 | 3 | | 12 | 73 | | 13 | 38 | | 14 | 18 | | 15 | 30 | | 16 | 69 | | 17 | 105 | | 18 | 17 | | 19 | 2 | | 20 | 63 | | 21 | 43 | | 22 | 58 | | 23 | 26 | | 24 | 24 | | 25 | 36 | | 26 | 31 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 95 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 224 | | matches | | 0 | "was flagging" | | 1 | "was darting" | | 2 | "was closing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 23 | | semicolonCount | 0 | | flaggedSentences | 16 | | totalSentences | 97 | | ratio | 0.165 | | matches | | 0 | "Her boots—standard Metropolitan Police issue, polished that morning with military precision—struck the wet asphalt in a rhythm that matched the toll of her heart." | | 1 | "The recognition clicked into place like a round chambering—twenty-nine years old, five-foot-ten, former NHS paramedic turned underground medic." | | 2 | "The leather band of her watch—worn, cracked, sitting heavy on her left wrist—snagged on a ridge of metal, jerking her arm." | | 3 | "As they passed an alley mouth, Quinn glimpsed the distinctive green neon of The Raven’s Nest bleeding emerald across the wet cobblestones—a landmark she’d surveilled for weeks, knowing its hidden back room held secrets behind a false bookshelf." | | 4 | "They were in the dark now, the tunnel swallowing the street noise whole, replacing it with the subterranean roar of ventilation fans and something older—the breath of the city’s buried bones." | | 5 | "They passed through a chained gate—padlock sheared clean—that separated the live network from the disused spurs." | | 6 | "Old posters—Lux soap, Brylcreem—peeled like shedding skin." | | 7 | "A gate had been erected across the archway—not steel, but bone." | | 8 | "Only resignation, and something worse—pity." | | 9 | "His accent—Seville, by way of Bethnal Green—echoed flat against the tiles." | | 10 | "But he withdrew only a token—white, carved from what looked like compacted ash or bone, etched with symbols that squirmed in the low light like tadpoles in a jar." | | 11 | "Beyond it, Quinn glimpsed impossible geometry—stalls lit by witchlight, figures in hooded robes bartering over jars that glowed with nuclear blue, alchemical smoke threading through the vaulted ceiling of a market that had no right to exist beneath Camden Town." | | 12 | "They didn't budge—solidity where there should be yielding air." | | 13 | "She holstered her weapon and grabbed the skull—cold, too cold, burning her palms like dry ice—and hauled herself up, boots finding purchase in the gaps between ribs." | | 14 | "The Veil recognized her scar tissue—the loss, the obsession, the three years of unanswered questions." | | 15 | "Ahead, the market breathed—alive, ancient, and waiting." |
| |
| 88.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1301 | | adjectiveStacks | 2 | | stackExamples | | 0 | "paramedic turned underground medic." | | 1 | "short, curly dark hair." |
| | adverbCount | 23 | | adverbRatio | 0.017678708685626442 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.005380476556495004 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 97 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 97 | | mean | 13.39 | | std | 8.76 | | cv | 0.654 | | sampleLengths | | 0 | 7 | | 1 | 23 | | 2 | 24 | | 3 | 5 | | 4 | 5 | | 5 | 2 | | 6 | 4 | | 7 | 28 | | 8 | 2 | | 9 | 22 | | 10 | 2 | | 11 | 18 | | 12 | 15 | | 13 | 6 | | 14 | 25 | | 15 | 21 | | 16 | 7 | | 17 | 12 | | 18 | 38 | | 19 | 8 | | 20 | 29 | | 21 | 16 | | 22 | 11 | | 23 | 15 | | 24 | 6 | | 25 | 14 | | 26 | 18 | | 27 | 16 | | 28 | 31 | | 29 | 2 | | 30 | 27 | | 31 | 11 | | 32 | 5 | | 33 | 16 | | 34 | 35 | | 35 | 10 | | 36 | 14 | | 37 | 11 | | 38 | 16 | | 39 | 5 | | 40 | 20 | | 41 | 12 | | 42 | 11 | | 43 | 8 | | 44 | 7 | | 45 | 9 | | 46 | 14 | | 47 | 3 | | 48 | 11 | | 49 | 32 |
| |
| 59.11% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.3917525773195876 | | totalSentences | 97 | | uniqueOpeners | 38 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 87 | | matches | | 0 | "Then his sleeve rode up" | | 1 | "Only resignation, and something worse—pity." | | 2 | "Currently located here." |
| | ratio | 0.034 | |
| 86.67% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 29 | | totalSentences | 87 | | matches | | 0 | "Her boots—standard Metropolitan Police issue," | | 1 | "She didn't feel the cold." | | 2 | "She felt the gap closing." | | 3 | "He vaulted a chain-link fence" | | 4 | "She needed him talking, not" | | 5 | "She hit the fence three" | | 6 | "She yanked it free and" | | 7 | "He plunged down the stairs" | | 8 | "Her brown eyes burned, wiping" | | 9 | "He leaped down onto the" | | 10 | "She radioed for backup, knowing" | | 11 | "Her boots found the purchase" | | 12 | "They were in the dark" | | 13 | "It had been three years" | | 14 | "His muscular frame moved with" | | 15 | "They passed through a chained" | | 16 | "They emerged onto a platform" | | 17 | "He wasn't alone." | | 18 | "It blocked the tunnel entrance," | | 19 | "His accent—Seville, by way of" |
| | ratio | 0.333 | |
| 63.45% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 69 | | totalSentences | 87 | | matches | | 0 | "Rain drilled into the pavement" | | 1 | "Detective Harlow Quinn kept her" | | 2 | "Her boots—standard Metropolitan Police issue," | | 3 | "She didn't feel the cold." | | 4 | "She felt the gap closing." | | 5 | "The suspect was flagging." | | 6 | "He vaulted a chain-link fence" | | 7 | "The recognition clicked into place" | | 8 | "Quinn's hand instinctively checked the" | | 9 | "She needed him talking, not" | | 10 | "She hit the fence three" | | 11 | "The leather band of her" | | 12 | "She yanked it free and" | | 13 | "Herrera was darting left, toward" | | 14 | "He plunged down the stairs" | | 15 | "Quinn followed, badge flashing at" | | 16 | "Her brown eyes burned, wiping" | | 17 | "The operational platform was nearly" | | 18 | "Herrera didn’t stop at the" | | 19 | "He leaped down onto the" |
| | ratio | 0.793 | |
| 57.47% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 87 | | matches | | 0 | "Now, chasing a man who" |
| | ratio | 0.011 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 56 | | technicalSentenceCount | 12 | | matches | | 0 | "Her boots—standard Metropolitan Police issue, polished that morning with military precision—struck the wet asphalt in a rhythm that matched the toll of her hear…" | | 1 | "She hit the fence three seconds behind him, gripping the wet links, hauling her five-nine frame over with a grunt that betrayed her forty-one years." | | 2 | "He plunged down the stairs into the Tube station, fare-dodging past the barriers with the ease of a man who knew the cameras were blind on the north side." | | 3 | "Now, chasing a man who treated supernatural gangsters with unauthorized medicines through tunnels that smelled of ozone and grave mold, she tasted the same copp…" | | 4 | "Femurs and ribs lashed together with copper wire, crowned with a skull that might have been human once, now polished to ivory and inscribed with spiraling chara…" | | 5 | "Herrera stood at the threshold, his chest heaving, steam rising from his short, curly dark hair." | | 6 | "But he withdrew only a token—white, carved from what looked like compacted ash or bone, etched with symbols that squirmed in the low light like tadpoles in a ja…" | | 7 | "Beyond it, Quinn glimpsed impossible geometry—stalls lit by witchlight, figures in hooded robes bartering over jars that glowed with nuclear blue, alchemical sm…" | | 8 | "Sells enchanted goods, banned alchemical substances, and the kind of information that got detectives killed." | | 9 | "Through the narrowing gap, she saw Herrera walking backward into the throng, his scarred arm raised in a gesture that wasn't quite surrender." | | 10 | "The leather was soaked through, the ancient mechanism ticking against her pulse, marking the seconds of her hesitation." | | 11 | "She stepped through, leaving her certainties dripping onto the platform behind her." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 4 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 6 | | tagDensity | 0.167 | | leniency | 0.333 | | rawRatio | 0 | | effectiveRatio | 0 | |