| 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 | |
| 95.33% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1071 | | 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) | |
| 39.31% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1071 | | totalAiIsms | 13 | | found | | | highlights | | 0 | "flickered" | | 1 | "looming" | | 2 | "measured" | | 3 | "footsteps" | | 4 | "echoed" | | 5 | "navigated" | | 6 | "electric" | | 7 | "glinting" | | 8 | "calculated" | | 9 | "pulse" | | 10 | "intensity" | | 11 | "jaw clenched" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "jaw/fists clenched" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 84 | | matches | (empty) | |
| 74.83% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 3 | | narrationSentences | 84 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 85 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 38 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1058 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 4 | | unquotedAttributions | 0 | | matches | (empty) | |
| 92.91% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 39 | | wordCount | 1051 | | uniqueNames | 19 | | maxNameDensity | 1.14 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "Market" | | discoveredNames | | London | 1 | | Harlow | 1 | | Quinn | 12 | | Raven | 2 | | Nest | 2 | | Old | 1 | | Compton | 1 | | Street | 1 | | Metropolitan | 1 | | Police | 1 | | Charing | 1 | | Cross | 1 | | Road | 1 | | British | 1 | | Museum | 1 | | Underground | 1 | | Glock | 1 | | Market | 7 | | Morris | 2 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Raven" | | 3 | "Police" | | 4 | "Museum" | | 5 | "Morris" |
| | places | | 0 | "London" | | 1 | "Old" | | 2 | "Compton" | | 3 | "Street" | | 4 | "Charing" | | 5 | "Cross" | | 6 | "Road" | | 7 | "Market" |
| | globalScore | 0.929 | | windowScore | 1 | |
| 73.08% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 65 | | glossingSentenceCount | 2 | | matches | | 0 | "looked like bones" | | 1 | "hum that seemed to emanate from the space itself" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1058 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 85 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 23 | | mean | 46 | | std | 23.8 | | cv | 0.517 | | sampleLengths | | 0 | 75 | | 1 | 75 | | 2 | 57 | | 3 | 65 | | 4 | 21 | | 5 | 51 | | 6 | 52 | | 7 | 58 | | 8 | 66 | | 9 | 47 | | 10 | 80 | | 11 | 15 | | 12 | 9 | | 13 | 82 | | 14 | 5 | | 15 | 68 | | 16 | 35 | | 17 | 28 | | 18 | 47 | | 19 | 51 | | 20 | 45 | | 21 | 9 | | 22 | 17 |
| |
| 92.73% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 84 | | matches | | 0 | "been trained" | | 1 | "been honed" | | 2 | "was closed" | | 3 | "been trained" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 173 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 85 | | ratio | 0.094 | | matches | | 0 | "Her worn leather watch caught the glow of a traffic light as she checked the time—11:47 PM." | | 1 | "When the suspect—a lean man with wire-rimmed glasses and nervous hands—spotted her, recognition flickered across his face like a fault line cracking open." | | 2 | "She could almost read the panic radiating from him now—in the way his head snapped back to check her position, in the jerking quality of his movements." | | 3 | "The station was closed—the security gates locked up for the night—but the suspect had already disappeared deeper into the tunnels." | | 4 | "The beam caught him first—pressed against the tunnel wall about fifty meters ahead, his chest heaving." | | 5 | "This was the kind of moment that had cost her partner Morris his life three years ago—the moment when the case stopped being about crime and started being about something else entirely." | | 6 | "Faces turned toward her from the Market—faces that registered her presence with an intensity that felt almost physical." | | 7 | "Behind him, a man emerged from between two market stalls—tall, composed, with the bearing of someone who'd seen enough of the world's strange corners to be surprised by nothing." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1064 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 33 | | adverbRatio | 0.03101503759398496 | | lyAdverbCount | 14 | | lyAdverbRatio | 0.013157894736842105 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 85 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 85 | | mean | 12.45 | | std | 8.24 | | cv | 0.662 | | sampleLengths | | 0 | 16 | | 1 | 22 | | 2 | 17 | | 3 | 20 | | 4 | 12 | | 5 | 38 | | 6 | 23 | | 7 | 2 | | 8 | 18 | | 9 | 8 | | 10 | 4 | | 11 | 4 | | 12 | 23 | | 13 | 19 | | 14 | 15 | | 15 | 4 | | 16 | 27 | | 17 | 4 | | 18 | 4 | | 19 | 6 | | 20 | 7 | | 21 | 19 | | 22 | 8 | | 23 | 14 | | 24 | 5 | | 25 | 5 | | 26 | 20 | | 27 | 32 | | 28 | 14 | | 29 | 20 | | 30 | 24 | | 31 | 15 | | 32 | 8 | | 33 | 2 | | 34 | 16 | | 35 | 7 | | 36 | 18 | | 37 | 5 | | 38 | 15 | | 39 | 12 | | 40 | 7 | | 41 | 8 | | 42 | 16 | | 43 | 10 | | 44 | 2 | | 45 | 4 | | 46 | 9 | | 47 | 20 | | 48 | 19 | | 49 | 4 |
| |
| 54.12% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.38823529411764707 | | totalSentences | 85 | | uniqueOpeners | 33 | |
| 83.33% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 80 | | matches | | 0 | "Impossibly large, impossibly detailed." | | 1 | "Instead, he turned and bolted" |
| | ratio | 0.025 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 80 | | matches | | 0 | "Her worn leather watch caught" | | 1 | "She'd been nursing a drink" | | 2 | "Her lungs didn't burn." | | 3 | "Her legs didn't fail." | | 4 | "He nearly went down, caught" | | 5 | "She could almost read the" | | 6 | "He wasn't a runner." | | 7 | "His feet found the stairs" | | 8 | "She navigated by instinct and" | | 9 | "She pushed through the tunnel" | | 10 | "She pulled out her torch," | | 11 | "Her other hand rested on" | | 12 | "She'd made a career out" | | 13 | "She took a step forward." | | 14 | "Her breath caught." | | 15 | "He stood at the edge" | | 16 | "She could go back up." | | 17 | "She could call for backup," | | 18 | "Her boot found the cavern" | | 19 | "Her breath came out in" |
| | ratio | 0.263 | |
| 60.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 64 | | totalSentences | 80 | | matches | | 0 | "The rain fell in sheets" | | 1 | "Detective Harlow Quinn moved through" | | 2 | "Her worn leather watch caught" | | 3 | "The suspect had bolted from" | | 4 | "She'd been nursing a drink" | | 5 | "Quinn kept pace, her breathing" | | 6 | "Her lungs didn't burn." | | 7 | "Her legs didn't fail." | | 8 | "This was what her body" | | 9 | "The suspect took a hard" | | 10 | "He nearly went down, caught" | | 11 | "Quinn closed the distance." | | 12 | "She could almost read the" | | 13 | "He wasn't a runner." | | 14 | "That much was obvious." | | 15 | "A runner had rhythm, had" | | 16 | "This man was pure adrenaline" | | 17 | "The street opened up before" | | 18 | "The suspect's breath came in" | | 19 | "Quinn matched his pace without" |
| | ratio | 0.8 | |
| 62.50% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 80 | | matches | | 0 | "Now his trainers splashed through" |
| | ratio | 0.013 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 41 | | technicalSentenceCount | 9 | | matches | | 0 | "The rain fell in sheets that turned the London streets into rivers of neon and shadow." | | 1 | "Detective Harlow Quinn moved through it with the efficiency of someone who'd spent two decades chasing people through worse weather than this." | | 2 | "Quinn took the stairs after him, her eyes adjusting to the dim emergency lighting." | | 3 | "The kind of air that came before a summer storm, heavy with pressure and static electricity." | | 4 | "Market stalls lined the space in organized rows, their wares glinting with an oily iridescence that made Quinn's eyes water." | | 5 | "Faces turned toward her from the Market—faces that registered her presence with an intensity that felt almost physical." | | 6 | "He stood at the edge of the Market proper, gesturing frantically toward her, saying something she couldn't hear over the strange hum that seemed to emanate from…" | | 7 | "What connection ran between this place and the death of Morris, and the supernatural element that had haunted her understanding of that case ever since." | | 8 | "Behind him, a man emerged from between two market stalls—tall, composed, with the bearing of someone who'd seen enough of the world's strange corners to be surp…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 1 | | matches | | 0 | "he said, his voice carrying across the Market with strange clarity" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 3 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0 | | effectiveRatio | 0 | |