| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 84.55% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 971 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "slightly" | | 1 | "sharply" | | 2 | "softly" |
| |
| 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) | |
| 22.76% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 971 | | totalAiIsms | 15 | | found | | | highlights | | 0 | "chill" | | 1 | "calculating" | | 2 | "measured" | | 3 | "familiar" | | 4 | "clandestine" | | 5 | "standard" | | 6 | "reminder" | | 7 | "vibrated" | | 8 | "flicked" | | 9 | "pulsed" | | 10 | "velvet" | | 11 | "gloom" | | 12 | "echoing" | | 13 | "rhythmic" |
| |
| 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 | 49 | | matches | (empty) | |
| 84.55% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 0 | | narrationSentences | 49 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 49 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 40 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 965 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 0 | | unquotedAttributions | 0 | | matches | (empty) | |
| 98.19% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 36 | | wordCount | 965 | | uniqueNames | 17 | | maxNameDensity | 1.04 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | London | 3 | | Soho | 1 | | Harlow | 1 | | Quinn | 10 | | Met | 2 | | Greek | 1 | | Street | 1 | | Raven | 1 | | Nest | 1 | | Morris | 4 | | Veil | 2 | | Market | 2 | | Tube | 1 | | Camden | 1 | | Home | 1 | | Office | 1 | | Herrera | 3 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Raven" | | 3 | "Morris" | | 4 | "Office" | | 5 | "Herrera" |
| | places | | 0 | "London" | | 1 | "Soho" | | 2 | "Greek" | | 3 | "Street" |
| | globalScore | 0.982 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 44 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 96.37% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 1.036 | | wordCount | 965 | | matches | | 0 | "not out of civic courtesy, but because the atmosphere of lethal, coiled competence radiatin" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 49 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 20 | | mean | 48.25 | | std | 28.67 | | cv | 0.594 | | sampleLengths | | 0 | 65 | | 1 | 43 | | 2 | 86 | | 3 | 4 | | 4 | 55 | | 5 | 81 | | 6 | 71 | | 7 | 5 | | 8 | 100 | | 9 | 17 | | 10 | 55 | | 11 | 85 | | 12 | 59 | | 13 | 31 | | 14 | 8 | | 15 | 67 | | 16 | 17 | | 17 | 54 | | 18 | 21 | | 19 | 41 |
| |
| 90.94% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 49 | | matches | | 0 | "were choked" | | 1 | "was scheduled" |
| |
| 56.12% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 139 | | matches | | 0 | "was crawling" | | 1 | "was cutting" | | 2 | "was running" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 0 | | flaggedSentences | 4 | | totalSentences | 49 | | ratio | 0.082 | | matches | | 0 | "The clandestine meeting space beyond was empty, save for a single exit plunging steeply downward into the bowels of the city—a disused maintenance stairwell that smelled of rust and stale coal gas." | | 1 | "This sprawling, subterranean bazaar—housed tonight in an abandoned Tube station deep beneath Camden—pulsed with a sickly, bioluminescent glow from hanging glass globes filled with writhing, luminescent moss." | | 2 | "Her target—a man with short curly dark brown hair and a distinct limp favor on his left side—was cutting a jagged path through the press of bodies near a stall draped in heavy velvet." | | 3 | "The tracks stretched out into an absolute void, echoing with the distant, rhythmic dripping of water and something else—a low, resonant vibration that made her teeth ache and the hairs on the back of her neck stand on end." |
| |
| 82.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 983 | | adjectiveStacks | 3 | | stackExamples | | 0 | "deep, bass-heavy thrum" | | 1 | "heavy, iron-plated emergency" | | 2 | "unmistakable, ozone-heavy stink" |
| | adverbCount | 25 | | adverbRatio | 0.0254323499491353 | | lyAdverbCount | 15 | | lyAdverbRatio | 0.015259409969481181 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 49 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 49 | | mean | 19.69 | | std | 9.42 | | cv | 0.478 | | sampleLengths | | 0 | 32 | | 1 | 8 | | 2 | 25 | | 3 | 20 | | 4 | 23 | | 5 | 4 | | 6 | 16 | | 7 | 20 | | 8 | 20 | | 9 | 26 | | 10 | 4 | | 11 | 23 | | 12 | 32 | | 13 | 15 | | 14 | 35 | | 15 | 31 | | 16 | 21 | | 17 | 16 | | 18 | 34 | | 19 | 5 | | 20 | 11 | | 21 | 22 | | 22 | 27 | | 23 | 19 | | 24 | 21 | | 25 | 17 | | 26 | 16 | | 27 | 20 | | 28 | 19 | | 29 | 34 | | 30 | 2 | | 31 | 27 | | 32 | 22 | | 33 | 12 | | 34 | 29 | | 35 | 18 | | 36 | 31 | | 37 | 8 | | 38 | 11 | | 39 | 39 | | 40 | 17 | | 41 | 17 | | 42 | 4 | | 43 | 28 | | 44 | 22 | | 45 | 7 | | 46 | 14 | | 47 | 7 | | 48 | 34 |
| |
| 72.79% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 1 | | diversityRatio | 0.4489795918367347 | | totalSentences | 49 | | uniqueOpeners | 22 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 48 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 7 | | totalSentences | 48 | | matches | | 0 | "She rounded the corner of" | | 1 | "She reached the door, shoved" | | 2 | "She slipped through the gap" | | 3 | "She still wore the worn" | | 4 | "Her target—a man with short" | | 5 | "She pulled up short, her" | | 6 | "She looked down at her" |
| | ratio | 0.146 | |
| 95.42% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 35 | | totalSentences | 48 | | matches | | 0 | "The London drizzle had settled" | | 1 | "Detective Harlow Quinn did not" | | 2 | "She rounded the corner of" | | 3 | "Quinn didn't break stride." | | 4 | "She reached the door, shoved" | | 5 | "The walls were choked with" | | 6 | "The bartender looked up, but" | | 7 | "A heavy oak bookshelf stood" | | 8 | "The hidden back room." | | 9 | "She slipped through the gap" | | 10 | "The clandestine meeting space beyond" | | 11 | "Quinn descended into the dark," | | 12 | "She still wore the worn" | | 13 | "The stairwell bottomed out abruptly," | | 14 | "Quinn flicked on her tactical" | | 15 | "The concrete gave way to" | | 16 | "The subterranean air was thick" | | 17 | "This sprawling, subterranean bazaar—housed tonight" | | 18 | "Stalls cobbled together from salvaged" | | 19 | "Quinn stepped through the threshold," |
| | ratio | 0.729 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 48 | | matches | | 0 | "Even from the threshold, the" | | 1 | "To her left, a woman" |
| | ratio | 0.042 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 40 | | technicalSentenceCount | 9 | | matches | | 0 | "The walls were choked with curling old maps and yellowing black-and-white photographs of a London that had vanished decades ago." | | 1 | "A heavy oak bookshelf stood slightly askew against the wall, revealing a sliver of darkness and a draught that smelled sharply of damp earth and ozone." | | 2 | "The clandestine meeting space beyond was empty, save for a single exit plunging steeply downward into the bowels of the city—a disused maintenance stairwell tha…" | | 3 | "Three years of nightmares had taught her what hid in the margins of this city, ever since the night she lost DS Morris to a case that defied every standard auto…" | | 4 | "The stairwell bottomed out abruptly, feeding into a rusted service tunnel that vibrated with the deep, bass-heavy thrum of the underground." | | 5 | "Quinn stepped through the threshold, her boots crunching on something that looked suspiciously like dried bone fragments." | | 6 | "A former NHS paramedic who had lost his license after the medical board found out he was running off-the-books trauma care for things that shouldn't have pulses…" | | 7 | "The tracks stretched out into an absolute void, echoing with the distant, rhythmic dripping of water and something else—a low, resonant vibration that made her …" | | 8 | "Behind her lay the jurisdiction of the Met, the paper trails, the coroner's reports, the familiar rules of a world that made sense even when it was cruel." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 0 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |