| 57.14% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 7 | | adverbTagCount | 1 | | adverbTags | | 0 | "he said quietly [quietly]" |
| | dialogueSentences | 13 | | tagDensity | 0.538 | | leniency | 1 | | rawRatio | 0.143 | | effectiveRatio | 0.143 | |
| 93.39% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1512 | | 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) | |
| 90.08% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1512 | | totalAiIsms | 3 | | found | | | highlights | | |
| 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 | 90 | | matches | (empty) | |
| 79.37% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 3 | | narrationSentences | 90 | | filterMatches | | | hedgeMatches | | 0 | "seemed to" | | 1 | "began to" | | 2 | "happened to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 96 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 57 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1500 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 8 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 44 | | wordCount | 1395 | | uniqueNames | 24 | | maxNameDensity | 0.72 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | London | 2 | | Detective | 1 | | Harlow | 1 | | Quinn | 10 | | Raven | 1 | | Nest | 1 | | Silas | 3 | | Herrera | 7 | | Seville | 1 | | Spain | 1 | | Met | 1 | | Soho | 1 | | Charing | 1 | | Cross | 1 | | Road | 1 | | Saint | 1 | | Christopher | 1 | | Spanish | 1 | | Oxford | 1 | | Circus | 1 | | Camden | 2 | | Transport | 1 | | Morris | 2 | | Tube | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Silas" | | 3 | "Herrera" | | 4 | "Saint" | | 5 | "Christopher" | | 6 | "Morris" |
| | places | | 0 | "London" | | 1 | "Raven" | | 2 | "Seville" | | 3 | "Spain" | | 4 | "Soho" | | 5 | "Charing" | | 6 | "Cross" | | 7 | "Road" | | 8 | "Spanish" | | 9 | "Oxford" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 64 | | glossingSentenceCount | 1 | | matches | | 0 | "quite match the one outside" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.667 | | wordCount | 1500 | | matches | | 0 | "not a woman who put stock in moons, but she'd read the file" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 96 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 38 | | mean | 39.47 | | std | 29.05 | | cv | 0.736 | | sampleLengths | | 0 | 23 | | 1 | 98 | | 2 | 17 | | 3 | 19 | | 4 | 83 | | 5 | 15 | | 6 | 6 | | 7 | 78 | | 8 | 30 | | 9 | 11 | | 10 | 2 | | 11 | 121 | | 12 | 58 | | 13 | 23 | | 14 | 18 | | 15 | 79 | | 16 | 1 | | 17 | 50 | | 18 | 80 | | 19 | 72 | | 20 | 12 | | 21 | 23 | | 22 | 48 | | 23 | 32 | | 24 | 11 | | 25 | 50 | | 26 | 48 | | 27 | 12 | | 28 | 53 | | 29 | 36 | | 30 | 13 | | 31 | 50 | | 32 | 69 | | 33 | 25 | | 34 | 63 | | 35 | 34 | | 36 | 17 | | 37 | 20 |
| |
| 97.47% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 90 | | matches | | 0 | "been taught" | | 1 | "been forced" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 7 | | totalVerbs | 221 | | matches | | 0 | "was carrying" | | 1 | "was also carrying" | | 2 | "wasn't running" | | 3 | "was running" | | 4 | "were going" | | 5 | "wasn't running" | | 6 | "was looking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 96 | | ratio | 0.073 | | matches | | 0 | "She moved the way she'd been taught a lifetime ago, before the Met, when bearing still meant something you could be broken down to and rebuilt from: heel to toe, weight low, eyes flicking in steady intervals—shopfronts, parked cars, the long wet mirror of the street." | | 1 | "A medallion swung free of his collar and flashed in the lights of a passing bus—Saint Christopher, she registered absurdly, patron saint of travelers—and then he put his head down and ran harder." | | 2 | "Quinn hit the gate two seconds behind him and found the dark swallowing them both—a maintenance stairwell, old Transport for London signage bleached to ghosts, the steps slick with twenty years of groundwater and moss." | | 3 | "And at the far end, where the tracks vanished into a black tunnel mouth, an iron gate that had no business existing—new metal, heavy mesh, a turnstile bolted into it like an afterthought with a slot where a coin should go." | | 4 | "\"There are no stations for this.\" He pulled something from his pocket—a disc of yellowed bone, carved, the size of an old pound coin—and held it up between two fingers." | | 5 | "Quinn was faster—eighteen years of instinct and a body still wired for it—and her hand closed over cold carved bone a foot from the gap." | | 6 | "She looked at the token in her palm—bone, warm somehow, carved with a symbol she didn't recognize—and then at the gate, and the darkness beyond it, and the faintest breath of air that came up the tunnel carrying smells that did not belong in any Tube station: woodsmoke, incense, hot copper, something green and living." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1411 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 44 | | adverbRatio | 0.03118355776045358 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.007087172218284904 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 96 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 96 | | mean | 15.63 | | std | 11.89 | | cv | 0.761 | | sampleLengths | | 0 | 23 | | 1 | 24 | | 2 | 18 | | 3 | 29 | | 4 | 9 | | 5 | 18 | | 6 | 4 | | 7 | 8 | | 8 | 5 | | 9 | 19 | | 10 | 12 | | 11 | 2 | | 12 | 10 | | 13 | 18 | | 14 | 25 | | 15 | 16 | | 16 | 15 | | 17 | 6 | | 18 | 46 | | 19 | 3 | | 20 | 29 | | 21 | 4 | | 22 | 26 | | 23 | 8 | | 24 | 3 | | 25 | 2 | | 26 | 23 | | 27 | 40 | | 28 | 3 | | 29 | 23 | | 30 | 32 | | 31 | 8 | | 32 | 17 | | 33 | 33 | | 34 | 22 | | 35 | 1 | | 36 | 18 | | 37 | 33 | | 38 | 4 | | 39 | 4 | | 40 | 38 | | 41 | 1 | | 42 | 28 | | 43 | 4 | | 44 | 7 | | 45 | 5 | | 46 | 6 | | 47 | 27 | | 48 | 35 | | 49 | 9 |
| |
| 56.94% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 12 | | diversityRatio | 0.4166666666666667 | | totalSentences | 96 | | uniqueOpeners | 40 | |
| 40.16% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 83 | | matches | | 0 | "Then she pressed the bone" |
| | ratio | 0.012 | |
| 60.96% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 33 | | totalSentences | 83 | | matches | | 0 | "She'd taken up position in" | | 1 | "She'd been in once, six" | | 2 | "She'd clocked the bookshelf against" | | 3 | "He was carrying a battered" | | 4 | "She saw the scar then," | | 5 | "He turned up his collar," | | 6 | "She moved the way she'd" | | 7 | "He checked his surroundings in" | | 8 | "He didn't need to." | | 9 | "His shoulders changed." | | 10 | "She was moving before her" | | 11 | "He was fast." | | 12 | "He was also carrying five" | | 13 | "He clipped a bin, spun" | | 14 | "He threw a look back" | | 15 | "she shouted, though the word" | | 16 | "He answered her in Spanish," | | 17 | "He wasn't running aimlessly." | | 18 | "He was running north." | | 19 | "She'd read every file." |
| | ratio | 0.398 | |
| 62.41% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 66 | | totalSentences | 83 | | matches | | 0 | "The rain came down like" | | 1 | "She'd taken up position in" | | 2 | "The bar's green neon sign" | | 3 | "She'd been in once, six" | | 4 | "She'd clocked the bookshelf against" | | 5 | "The bar was Silas's." | | 6 | "Silas didn't officially exist, which" | | 7 | "Neither did half his clientele." | | 8 | "Quinn straightened out of her" | | 9 | "License revoked eighteen months ago" | | 10 | "He was carrying a battered" | | 11 | "She saw the scar then," | | 12 | "He turned up his collar," | | 13 | "Quinn gave him half a" | | 14 | "She moved the way she'd" | | 15 | "Herrera was good." | | 16 | "He checked his surroundings in" | | 17 | "He didn't need to." | | 18 | "Quinn saw the exact moment" | | 19 | "His shoulders changed." |
| | ratio | 0.795 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 83 | | matches | (empty) | | ratio | 0 | |
| 31.75% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 45 | | technicalSentenceCount | 7 | | matches | | 0 | "Through the window she could see the place's insides: dim, crowded, walls papered with old maps and black-and-white photographs of a city that didn't quite matc…" | | 1 | "License revoked eighteen months ago for administering unauthorized treatments to patients who, according to the paperwork, didn't exist." | | 2 | "She saw the scar then, the long pale seam running down his forearm, catching the neon." | | 3 | "He checked his surroundings in a natural, loose way, the way a man who'd grown up in a city checks them, and he never once looked directly behind him." | | 4 | "The moon was full overhead, fat and silver behind the torn clouds, and Quinn was not a woman who put stock in moons, but she'd read the file." | | 5 | "And at the far end, where the tracks vanished into a black tunnel mouth, an iron gate that had no business existing—new metal, heavy mesh, a turnstile bolted in…" | | 6 | "She looked at the token in her palm—bone, warm somehow, carved with a symbol she didn't recognize—and then at the gate, and the darkness beyond it, and the fain…" |
| |
| 53.57% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 7 | | uselessAdditionCount | 1 | | matches | | 0 | "she shouted, though the word tore away in the rain and there wasn't a soul on the street to hear it" |
| |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 2 | | fancyTags | | 0 | "she shouted (shout)" | | 1 | "she called out (call out)" |
| | dialogueSentences | 13 | | tagDensity | 0.385 | | leniency | 0.769 | | rawRatio | 0.4 | | effectiveRatio | 0.308 | |