| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 3 | | tagDensity | 0.667 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 96.57% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1456 | | totalAiIsmAdverbs | 1 | | found | | 0 | | adverb | "deliberately" | | count | 1 |
|
| | highlights | | |
| 80.00% | AI-ism character names | Target: 0 AI-default names (17 tracked, −20% each) | | codexExemptions | (empty) | | found | | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 82.83% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1456 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "measured" | | 1 | "pulse" | | 2 | "resolved" | | 3 | "shimmered" | | 4 | "scanning" |
| |
| 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 | 101 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 101 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 102 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 73 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 6 | | totalWords | 1474 | | ratio | 0.004 | | matches | | 0 | "wait, Harlow, wait for backup" | | 1 | "unverified" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 8 | | unquotedAttributions | 0 | | matches | (empty) | |
| 98.70% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 36 | | wordCount | 1462 | | uniqueNames | 18 | | maxNameDensity | 1.03 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "Quinn" | | discoveredNames | | Quinn | 15 | | Camden | 3 | | High | 1 | | Street | 2 | | Inverness | 1 | | Hendon | 1 | | Marcus | 1 | | Vale | 1 | | Lambeth | 1 | | Morris | 2 | | Harlow | 1 | | Alan | 1 | | Transport | 1 | | London | 1 | | Sauer | 1 | | Tube | 1 | | Veil | 1 | | Market | 1 |
| | persons | | 0 | "Quinn" | | 1 | "Hendon" | | 2 | "Marcus" | | 3 | "Vale" | | 4 | "Morris" | | 5 | "Harlow" | | 6 | "Alan" |
| | places | | 0 | "Camden" | | 1 | "High" | | 2 | "Street" | | 3 | "Inverness" | | 4 | "Lambeth" | | 5 | "London" | | 6 | "Market" |
| | globalScore | 0.987 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 68 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 0.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 3 | | per1kWords | 2.035 | | wordCount | 1474 | | matches | | 0 | "not the runner, but the mouth of it: a stairwell descending into the ground, til" | | 1 | "not any roundel she knew, not Transport for London's blue and red, but something older, a knotwork of black lines on white glaze" | | 2 | "not Transport for London's blue and red, but something older, a knotwork of black lines on white glaze" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 102 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 34 | | mean | 43.35 | | std | 34.47 | | cv | 0.795 | | sampleLengths | | 0 | 16 | | 1 | 113 | | 2 | 103 | | 3 | 55 | | 4 | 34 | | 5 | 56 | | 6 | 1 | | 7 | 93 | | 8 | 8 | | 9 | 37 | | 10 | 19 | | 11 | 101 | | 12 | 11 | | 13 | 2 | | 14 | 90 | | 15 | 32 | | 16 | 35 | | 17 | 19 | | 18 | 106 | | 19 | 3 | | 20 | 73 | | 21 | 4 | | 22 | 59 | | 23 | 48 | | 24 | 79 | | 25 | 7 | | 26 | 56 | | 27 | 60 | | 28 | 8 | | 29 | 67 | | 30 | 16 | | 31 | 13 | | 32 | 14 | | 33 | 36 |
| |
| 84.42% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 6 | | totalSentences | 101 | | matches | | 0 | "was gone" | | 1 | "been opened" | | 2 | "been painted" | | 3 | "was lit" | | 4 | "being tuned" | | 5 | "was caught" |
| |
| 84.56% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 231 | | matches | | 0 | "was breathing" | | 1 | "was looking" | | 2 | "was saying" | | 3 | "was, humming" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 18 | | semicolonCount | 0 | | flaggedSentences | 16 | | totalSentences | 102 | | ratio | 0.157 | | matches | | 0 | "The suspect was young — mid-twenties, hood up, moving with the loose-limbed economy of someone who had done this before." | | 1 | "Eleven days of photographs, of a name that kept dissolving — Marcus Vale, then nothing, then a passport in someone else's handwriting." | | 2 | "He was breathing hard — she could hear it, a ragged percussion somewhere past the arch where the road bent." | | 3 | "Around the bend she found what she was looking for — not the runner, but the mouth of it: a stairwell descending into the ground, tiled in cream and green, the light overhead flickering a sick yellow." | | 4 | "She could hear him — the flat slapping of wet shoes on tile, receding." | | 5 | "Three years ago she had stood like this at the mouth of a car park in Lambeth, listening to the dark breathe, and Morris had said *wait, Harlow, wait for backup* and she had not waited, and she had come back up alone, and she had never been able to explain to anyone — least of all the review board — what she had found in the stairwell or where DS Alan Morris had gone." | | 6 | "Twelve steps, then a landing, then twelve more, and then a corridor that ran on under the street with tiles climbing the walls in a pattern she didn't recognize — not any roundel she knew, not Transport for London's blue and red, but something older, a knotwork of black lines on white glaze that repeated and folded back into itself." | | 7 | "Ahead, the corridor was lit by something warmer — amber, unsteady, like lamp oil." | | 8 | "Music too — a low drum, a stringed instrument being tuned to a scale that made her teeth ache." | | 9 | "She came out of the corridor onto a platform — a genuine Tube platform, tiled and colonnaded, the tracks gone." | | 10 | "She'd told herself it was mythology — the kind of story detectives told each other to explain the gaps." | | 11 | "He was caught in the press of bodies — figures in cloaks, figures with too many shadows, a woman whose face Quinn's eye refused to settle on." | | 12 | "Around him others closed ranks — a merchant, a pair of buyers, a figure hunched under a load of crated glass." | | 13 | "Radio it in — no." | | 14 | "Quinn looked at the wall of backs in front of her, at the mask and the apron and the figures who would not turn, and she took her hand off the holster and squared her shoulders — military precision, the old posture, spine straight and chin level, the stance of a woman who had walked into worse rooms than this." | | 15 | "The crowd closed behind her, and the amber light swallowed her whole, and above her — far above, through forty feet of earth and rain — the city carried on believing it was the only one." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1447 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 37 | | adverbRatio | 0.025570145127850726 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.00414651002073255 | |
| 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 | 14.45 | | std | 13.6 | | cv | 0.941 | | sampleLengths | | 0 | 16 | | 1 | 41 | | 2 | 33 | | 3 | 11 | | 4 | 2 | | 5 | 3 | | 6 | 23 | | 7 | 20 | | 8 | 23 | | 9 | 9 | | 10 | 29 | | 11 | 22 | | 12 | 6 | | 13 | 14 | | 14 | 18 | | 15 | 7 | | 16 | 10 | | 17 | 30 | | 18 | 2 | | 19 | 1 | | 20 | 1 | | 21 | 20 | | 22 | 13 | | 23 | 5 | | 24 | 3 | | 25 | 15 | | 26 | 1 | | 27 | 5 | | 28 | 22 | | 29 | 37 | | 30 | 3 | | 31 | 6 | | 32 | 20 | | 33 | 8 | | 34 | 5 | | 35 | 14 | | 36 | 3 | | 37 | 15 | | 38 | 7 | | 39 | 1 | | 40 | 1 | | 41 | 10 | | 42 | 75 | | 43 | 2 | | 44 | 24 | | 45 | 5 | | 46 | 6 | | 47 | 2 | | 48 | 9 | | 49 | 60 |
| |
| 57.19% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.4019607843137255 | | totalSentences | 102 | | uniqueOpeners | 41 | |
| 76.63% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 87 | | matches | | 0 | "Somewhere behind her a siren" | | 1 | "Then the sound resolved into" |
| | ratio | 0.023 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 24 | | totalSentences | 87 | | matches | | 0 | "She'd lost two minutes in" | | 1 | "She ran anyway, boots hammering" | | 2 | "He'd made her at the" | | 3 | "He cut left down an" | | 4 | "He was breathing hard —" | | 5 | "She moved toward the sound." | | 6 | "She hadn't known this one" | | 7 | "She could hear him —" | | 8 | "She put her hand on" | | 9 | "She did not wait then." | | 10 | "She was not built for" | | 11 | "Her hand went to the" | | 12 | "She came out of the" | | 13 | "She knew the name." | | 14 | "She'd heard it in the" | | 15 | "She'd told herself it was" | | 16 | "He was caught in the" | | 17 | "He turned, scanning, looking for" | | 18 | "He had bad teeth." | | 19 | "He reached into his jacket" |
| | ratio | 0.276 | |
| 80.69% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 66 | | totalSentences | 87 | | matches | | 0 | "The rain came down in" | | 1 | "She'd lost two minutes in" | | 2 | "She ran anyway, boots hammering" | | 3 | "The worn leather watch on" | | 4 | "The suspect was young —" | | 5 | "He'd made her at the" | | 6 | "Quinn had been watching him" | | 7 | "He cut left down an" | | 8 | "Quinn followed without hesitation, splashing" | | 9 | "Brick on either side, black" | | 10 | "A cat fled yowling off" | | 11 | "The alley spat them out" | | 12 | "He was breathing hard —" | | 13 | "Quinn turned in a slow" | | 14 | "A laundrette, shuttered." | | 15 | "She moved toward the sound." | | 16 | "The rain had doubled, coming" | | 17 | "A station entrance." | | 18 | "She hadn't known this one" | | 19 | "The sign above it had" |
| | ratio | 0.759 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 87 | | matches | (empty) | | ratio | 0 | |
| 19.23% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 52 | | technicalSentenceCount | 9 | | matches | | 0 | "The suspect was young — mid-twenties, hood up, moving with the loose-limbed economy of someone who had done this before." | | 1 | "He'd made her at the market stall on Inverness Street, the one with the copper pots and the hooded man who sold them." | | 2 | "Eleven days of photographs, of a name that kept dissolving — Marcus Vale, then nothing, then a passport in someone else's handwriting." | | 3 | "Twelve steps, then a landing, then twelve more, and then a corridor that ran on under the street with tiles climbing the walls in a pattern she didn't recognize…" | | 4 | "Merchants in hoods and masks hawked goods she could not name: glass jars full of something that moved against the glass, bolts of cloth that shimmered and then …" | | 5 | "A massive man in a butcher's apron stepped into the gap between them, deliberately, turning his back to Quinn with the casual insolence of someone who knew exac…" | | 6 | "Without one she was a police officer standing in a place that had no record of existing, carrying a weapon she might well need, in a city beneath her city where…" | | 7 | "She could wait on the platform, photograph faces, build the case the slow way, the way that didn't end with a stairwell and a missing partner." | | 8 | "Quinn looked at the wall of backs in front of her, at the mask and the apron and the figures who would not turn, and she took her hand off the holster and squar…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 3 | | tagDensity | 0.667 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |