| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 11 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 21 | | tagDensity | 0.524 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 90.81% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1632 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "really" | | 1 | "very" | | 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) | |
| 75.49% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1632 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "warmth" | | 1 | "measured" | | 2 | "glint" | | 3 | "streaming" | | 4 | "silk" | | 5 | "beacon" | | 6 | "footfall" | | 7 | "whisper" |
| |
| 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 | 1 | | narrationSentences | 92 | | matches | | |
| 18.63% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 5 | | hedgeCount | 3 | | narrationSentences | 92 | | filterMatches | | 0 | "watch — watch" | | 1 | "watch" | | 2 | "look" |
| | hedgeMatches | | |
| 96.69% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 102 | | gibberishSentences | 1 | | adjustedGibberishSentences | 1 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 55 | | ratio | 0.01 | | matches | | 0 | "Quinn crossed the street in eleven seconds,雨 hammering her cropped hair flat, and shouldered through the door into warmth and smoke and the smell of spilled lager." |
| |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1653 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 11 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 35 | | wordCount | 1513 | | uniqueNames | 17 | | maxNameDensity | 0.59 | | worstName | "Quinn" | | maxWindowNameDensity | 1 | | worstWindowName | "Quinn" | | discoveredNames | | Soho | 2 | | October | 1 | | Harlow | 1 | | Quinn | 9 | | Raven | 1 | | Nest | 2 | | Herrera | 6 | | London | 1 | | Ambulance | 1 | | Service | 1 | | Silas | 1 | | Morris | 3 | | Saint | 1 | | Christopher | 1 | | Camden | 2 | | Veil | 1 | | Market | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Nest" | | 3 | "Herrera" | | 4 | "Service" | | 5 | "Silas" | | 6 | "Morris" | | 7 | "Saint" | | 8 | "Christopher" | | 9 | "Market" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 64 | | glossingSentenceCount | 4 | | matches | | 0 | "something like it once, in a box of Morris's" | | 1 | "looked like a knuckle, drilled through an" | | 2 | "something like a butcher's shop — and he ste" | | 3 | "beam that seemed to bend, the light going soft at the edges like old film" | | 4 | "not-quite child — and from the far tunnel came a sound that Quinn had no shelf for in all her eighteen years: a slow, wet, patient footfall, and behind it a whisper of many voices speaking one word" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.605 | | wordCount | 1653 | | matches | | 0 | "not with speed but with arithmetic, cutting the tangent he curved, closing the" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 102 | | matches | | 0 | "expected that; paramedics" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 39 | | mean | 42.38 | | std | 28.28 | | cv | 0.667 | | sampleLengths | | 0 | 69 | | 1 | 72 | | 2 | 33 | | 3 | 73 | | 4 | 69 | | 5 | 20 | | 6 | 34 | | 7 | 92 | | 8 | 60 | | 9 | 92 | | 10 | 20 | | 11 | 20 | | 12 | 25 | | 13 | 50 | | 14 | 65 | | 15 | 59 | | 16 | 5 | | 17 | 80 | | 18 | 22 | | 19 | 75 | | 20 | 13 | | 21 | 9 | | 22 | 13 | | 23 | 58 | | 24 | 97 | | 25 | 44 | | 26 | 77 | | 27 | 4 | | 28 | 45 | | 29 | 4 | | 30 | 65 | | 31 | 6 | | 32 | 51 | | 33 | 14 | | 34 | 47 | | 35 | 16 | | 36 | 22 | | 37 | 6 | | 38 | 27 |
| |
| 97.64% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 92 | | matches | | 0 | "were built" | | 1 | "were glazed" |
| |
| 8.74% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 7 | | totalVerbs | 244 | | matches | | 0 | "wasn't running" | | 1 | "was running" | | 2 | "wasn't looking" | | 3 | "was looking" | | 4 | "was coming" | | 5 | "wasn't fleeing" | | 6 | "was coming" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 20 | | semicolonCount | 2 | | flaggedSentences | 15 | | totalSentences | 102 | | ratio | 0.147 | | matches | | 0 | "The rain over Soho came down the way it always did in late October — sideways, needling, indifferent to anyone foolish enough to be standing in it." | | 1 | "At 11:42 by her watch — the worn leather band dark with rain, the face scratched, Morris's watch, the only thing of his they'd ever let her keep — Herrera put money on the bar and stood." | | 2 | "She'd expected that; paramedics were built out of urgency." | | 3 | "He made her at the junction with the delivery yard — she saw it in the set of his shoulders, the half-turn of his head, the glint of the Saint Christopher at his throat as he looked back." | | 4 | "She gained on him the way she always gained — not with speed but with arithmetic, cutting the tangent he curved, closing the diagonal, until in the last stretch she could hear his breathing go ragged andwrong, the sound of a man spending more than he had." | | 5 | "He was looking at the wall behind her, at a recess in the brick she hadn't clocked — a service stairway, steps descending into dark beneath a sign so old the paint had gone to bone: STAFF ONLY." | | 6 | "In the sodium light it looked like a knuckle, drilled through and worn smooth — a bone token, and her mind snagged on the word bone the way a nail snags silk, because she had seen a photograph of something like it once, in a box of Morris's unexplained effects, three years after they'd buried him." | | 7 | "The dark under the stairway exhaled — warm air, tallow and wet rock and something underneath that, something like a butcher's shop — and he stepped backward into it, eyes on her the whole way, and said, \"Don't follow me. Please. You don't have a token. They'll know.\"" | | 8 | "Backup was a fiction; no one was coming, and no report she could write would cover a door in a Camden wall that opened on candlelight." | | 9 | "The walls were glazed white tile, cracked and grouted with grime, the tile pattern shifting at intervals from utilitarian to something older and more deliberate — geometric, interlacing, faintly anatomical." | | 10 | "Stalls lined the platform edge to edge beneath strings of bare bulbs and paper lanterns, and the crowd moving between them was — Quinn made herself look, made herself catalog — not entirely human." | | 11 | "Another, hand-lettered: INFORMATION — FAIR RATES — NO REFUNDS." | | 12 | "He moved through the crowd like a man among his own — vendors nodded to him, one pressed something wrapped in wax cloth into his hand — and she understood, with a cold settling behind her sternum, that he wasn't fleeing the market." | | 13 | "\"You don't understand.\" He crossed to her, fast, and took her arm — the scarred forearm, the grip of a man who'd carried people out of burning cars — and his voice dropped to almost nothing." | | 14 | "The crowd went still — every vendor, every patron, every not-quite-child — and from the far tunnel came a sound that Quinn had no shelf for in all her eighteen years: a slow, wet, patient footfall, and behind it a whisper of many voices speaking one word." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1506 | | adjectiveStacks | 1 | | stackExamples | | 0 | "slow, wet, patient footfall," |
| | adverbCount | 44 | | adverbRatio | 0.029216467463479414 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.006640106241699867 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 102 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 102 | | mean | 16.21 | | std | 13.63 | | cv | 0.841 | | sampleLengths | | 0 | 27 | | 1 | 42 | | 2 | 2 | | 3 | 14 | | 4 | 37 | | 5 | 1 | | 6 | 6 | | 7 | 12 | | 8 | 33 | | 9 | 37 | | 10 | 6 | | 11 | 30 | | 12 | 27 | | 13 | 5 | | 14 | 29 | | 15 | 3 | | 16 | 2 | | 17 | 2 | | 18 | 1 | | 19 | 20 | | 20 | 4 | | 21 | 30 | | 22 | 3 | | 23 | 9 | | 24 | 27 | | 25 | 21 | | 26 | 4 | | 27 | 5 | | 28 | 23 | | 29 | 38 | | 30 | 4 | | 31 | 3 | | 32 | 15 | | 33 | 36 | | 34 | 5 | | 35 | 4 | | 36 | 47 | | 37 | 20 | | 38 | 20 | | 39 | 18 | | 40 | 7 | | 41 | 3 | | 42 | 5 | | 43 | 38 | | 44 | 4 | | 45 | 7 | | 46 | 1 | | 47 | 1 | | 48 | 56 | | 49 | 7 |
| |
| 65.69% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.47058823529411764 | | totalSentences | 102 | | uniqueOpeners | 48 | |
| 82.30% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 81 | | matches | | 0 | "Then he put his head" | | 1 | "Then he saw her." |
| | ratio | 0.025 | |
| 52.10% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 34 | | totalSentences | 81 | | matches | | 0 | "He didn't head for the" | | 1 | "He moved toward the back," | | 2 | "She walked the length of" | | 3 | "It stood ajar." | | 4 | "She pushed the shelf." | | 5 | "It swung on oiled hinges," | | 6 | "He was fast." | | 7 | "She'd expected that; paramedics were" | | 8 | "He cut left off the" | | 9 | "He wasn't running blind." | | 10 | "He was running a route." | | 11 | "He made her at the" | | 12 | "She almost laughed." | | 13 | "They went north through the" | | 14 | "Her knees reported their age." | | 15 | "Her lungs did not." | | 16 | "She gained on him the" | | 17 | "He turned into a dead-end" | | 18 | "Her voice came out flat" | | 19 | "He wasn't looking at her." |
| | ratio | 0.42 | |
| 21.73% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 71 | | totalSentences | 81 | | matches | | 0 | "The rain over Soho came" | | 1 | "Detective Harlow Quinn stood beneath" | | 2 | "Tomás Herrera, twenty-nine, formerly of" | | 3 | "Knife scar on the left" | | 4 | "A habit of touching the" | | 5 | "He didn't head for the" | | 6 | "He moved toward the back," | | 7 | "Quinn crossed the street in" | | 8 | "The barman didn't look up." | | 9 | "She walked the length of" | | 10 | "It stood ajar." | | 11 | "She pushed the shelf." | | 12 | "It swung on oiled hinges," | | 13 | "He was fast." | | 14 | "She'd expected that; paramedics were" | | 15 | "He cut left off the" | | 16 | "Quinn followed, breathing in the" | | 17 | "He wasn't running blind." | | 18 | "He was running a route." | | 19 | "Every turn he took shaved" |
| | ratio | 0.877 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 81 | | matches | (empty) | | ratio | 0 | |
| 49.69% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 46 | | technicalSentenceCount | 6 | | matches | | 0 | "He moved toward the back, past the old maps and the black-and-white photographs that papered the Nest's walls, and then he was simply gone, the way a candle goe…" | | 1 | "He cut left off the street, vaulted a skip, took the alley behind the record shop at a sprint, his boots throwing up sheets of standing water." | | 2 | "Quinn followed, breathing in the measured rhythm eighteen years of pursuit had drilled into her, counting his stride, reading his line." | | 3 | "He turned into a dead-end yard behind a bricked-up lock-up and stopped like a man who'd run out of city." | | 4 | "Quinn ran the last ten meters and got her hand into the gap, and the door stopped as if it had considered her fingers and found them insufficient reason to cont…" | | 5 | "The last time she'd followed a hunch past the edge of the explainable, she'd come back alone with Morris's watch in an evidence bag and a case number that would…" |
| |
| 79.55% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 11 | | uselessAdditionCount | 1 | | matches | | 0 | "He stopped, and the crowd parted around him as though he were a stone in a river, and he looked at her with warm brown eyes gone wide and hopeless, and said," |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 6 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 21 | | tagDensity | 0.286 | | leniency | 0.571 | | rawRatio | 0 | | effectiveRatio | 0 | |