| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 23 | | adverbTagCount | 1 | | adverbTags | | 0 | "Quinn crouched again [again]" |
| | dialogueSentences | 51 | | tagDensity | 0.451 | | leniency | 0.902 | | rawRatio | 0.043 | | effectiveRatio | 0.039 | |
| 96.24% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1329 | | totalAiIsmAdverbs | 1 | | 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) | |
| 84.95% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1329 | | totalAiIsms | 4 | | found | | | highlights | | 0 | "traced" | | 1 | "unreadable" | | 2 | "weight" | | 3 | "etched" |
| |
| 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 | 61 | | matches | (empty) | |
| 96.02% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 61 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 89 | | 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 | 1337 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 0 | | matches | (empty) | |
| 89.54% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 22 | | wordCount | 827 | | uniqueNames | 7 | | maxNameDensity | 1.21 | | worstName | "Bell" | | maxWindowNameDensity | 2 | | worstWindowName | "Bell" | | discoveredNames | | Camden | 1 | | Deep | 1 | | Quinn | 7 | | Aaron | 1 | | Bell | 10 | | Clean | 1 | | Morris | 1 |
| | persons | | 0 | "Quinn" | | 1 | "Aaron" | | 2 | "Bell" | | 3 | "Morris" |
| | places | (empty) | | globalScore | 0.895 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 41 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1337 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 89 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 46 | | mean | 29.07 | | std | 26.85 | | cv | 0.924 | | sampleLengths | | 0 | 50 | | 1 | 13 | | 2 | 22 | | 3 | 57 | | 4 | 29 | | 5 | 3 | | 6 | 88 | | 7 | 15 | | 8 | 51 | | 9 | 5 | | 10 | 14 | | 11 | 33 | | 12 | 21 | | 13 | 43 | | 14 | 8 | | 15 | 64 | | 16 | 10 | | 17 | 36 | | 18 | 2 | | 19 | 19 | | 20 | 12 | | 21 | 91 | | 22 | 13 | | 23 | 17 | | 24 | 23 | | 25 | 48 | | 26 | 6 | | 27 | 4 | | 28 | 8 | | 29 | 10 | | 30 | 62 | | 31 | 4 | | 32 | 112 | | 33 | 9 | | 34 | 57 | | 35 | 14 | | 36 | 6 | | 37 | 4 | | 38 | 66 | | 39 | 4 | | 40 | 20 | | 41 | 62 | | 42 | 9 | | 43 | 3 | | 44 | 44 | | 45 | 46 |
| |
| 93.76% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 61 | | matches | | 0 | "been rigged" | | 1 | "been laid" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 138 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 0 | | flaggedSentences | 5 | | totalSentences | 89 | | ratio | 0.056 | | matches | | 0 | "The stairs down to the old Camden Deep shelter smelled of wet chalk and rust, and Quinn counted them out of habit — fifty-eight to the first landing, another forty-one to the platform where the arc lights had been rigged on tripods and the shadows leaned away from the body." | | 1 | "Sixty years of it, thick as felt in the corners, printed now with the waffle tread of police boots that all came in from the same direction — the stairs behind her." | | 2 | "And the shoes — she put her torch on the shoes and held it there." | | 3 | "\"The drift's the same depth everywhere else on this platform. Here it thins. Here—\" the beam moved, \"—it's practically bare tile, and it comes back up sharp on the far side, like a bank. Two metres wide, running from that wall to the platform edge.\"" | | 4 | "\"Kids with a lot of friends and one route in.\" Quinn stood and brushed her hands off, and the movement pulled her cuff back, and she caught herself looking at her watch — 07:52 — and made herself stop, because she'd looked at it three times in five minutes and that was Morris's old habit, not hers." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 605 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 21 | | adverbRatio | 0.03471074380165289 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.0049586776859504135 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 89 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 89 | | mean | 15.02 | | std | 13.43 | | cv | 0.894 | | sampleLengths | | 0 | 50 | | 1 | 11 | | 2 | 2 | | 3 | 3 | | 4 | 19 | | 5 | 1 | | 6 | 5 | | 7 | 32 | | 8 | 13 | | 9 | 5 | | 10 | 1 | | 11 | 17 | | 12 | 12 | | 13 | 3 | | 14 | 30 | | 15 | 58 | | 16 | 15 | | 17 | 18 | | 18 | 16 | | 19 | 2 | | 20 | 15 | | 21 | 5 | | 22 | 8 | | 23 | 6 | | 24 | 23 | | 25 | 10 | | 26 | 2 | | 27 | 19 | | 28 | 9 | | 29 | 29 | | 30 | 5 | | 31 | 5 | | 32 | 3 | | 33 | 26 | | 34 | 20 | | 35 | 18 | | 36 | 10 | | 37 | 33 | | 38 | 3 | | 39 | 2 | | 40 | 4 | | 41 | 15 | | 42 | 12 | | 43 | 27 | | 44 | 30 | | 45 | 34 | | 46 | 5 | | 47 | 8 | | 48 | 10 | | 49 | 7 |
| |
| 93.63% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.5955056179775281 | | totalSentences | 89 | | uniqueOpeners | 53 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 50 | | matches | | 0 | "Then she stood and walked" | | 1 | "Then a foot outside it," |
| | ratio | 0.04 | |
| 52.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 50 | | matches | | 0 | "She minded it." | | 1 | "Her torch found the gap," | | 2 | "She turned her torch along" | | 3 | "He lay on his right" | | 4 | "He came, obliging, and squatted" | | 5 | "She traced the light along" | | 6 | "She swung the torch out" | | 7 | "She stood, moved three careful" | | 8 | "She came back and stood" | | 9 | "She held her palm above" | | 10 | "She looked up at him" | | 11 | "He flipped a page" | | 12 | "She granted it with a" | | 13 | "She squatted and swept the" | | 14 | "She put her fingertip on" | | 15 | "She pointed into the dark" | | 16 | "She went back to the" | | 17 | "She bagged it and reached" | | 18 | "She held it flat on" | | 19 | "She turned her hand ninety" |
| | ratio | 0.42 | |
| 40.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 42 | | totalSentences | 50 | | matches | | 0 | "The stairs down to the" | | 1 | "a uniform called up" | | 2 | "She minded it." | | 3 | "Her torch found the gap," | | 4 | "That was the first thing." | | 5 | "She turned her torch along" | | 6 | "DS Aaron Bell picked his" | | 7 | "Bell tipped his head toward" | | 8 | "Quinn crouched a metre from" | | 9 | "He lay on his right" | | 10 | "Charcoal wool coat, good coat," | | 11 | "He came, obliging, and squatted" | | 12 | "She traced the light along" | | 13 | "She swung the torch out" | | 14 | "Bell was quiet a beat." | | 15 | "She stood, moved three careful" | | 16 | "The dust lay in soft" | | 17 | "She came back and stood" | | 18 | "Quinn crouched again" | | 19 | "She held her palm above" |
| | ratio | 0.84 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 50 | | matches | (empty) | | ratio | 0 | |
| 71.43% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 20 | | technicalSentenceCount | 2 | | matches | | 0 | "Charcoal wool coat, good coat, the kind with the collar that stood up on its own." | | 1 | "The blood had gone tacky and dark, a neat rough oval that stopped where it stopped, as though something had been laid down to catch it and then taken away." |
| |
| 59.78% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 23 | | uselessAdditionCount | 3 | | matches | | 0 | "She held, not touching" | | 1 | "Bell said, but his voice had gone thin" | | 2 | "Quinn stood, and the movement pulled her cuff back, and she caught herself looking at her watch — 07:52 — and made herself stop, because she'd looked at it three times in five minutes and that was Morris's old habit, not hers" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 51 | | tagDensity | 0.078 | | leniency | 0.157 | | rawRatio | 0 | | effectiveRatio | 0 | |