| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 6 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 16 | | tagDensity | 0.375 | | leniency | 0.75 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 97.35% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1888 | | 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) | |
| 68.22% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1888 | | totalAiIsms | 12 | | found | | | highlights | | 0 | "flickered" | | 1 | "pulse" | | 2 | "grave" | | 3 | "velvet" | | 4 | "silk" | | 5 | "weight" | | 6 | "footsteps" | | 7 | "glinting" | | 8 | "flicked" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 124 | | matches | (empty) | |
| 96.77% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 2 | | narrationSentences | 124 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 133 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 48 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1880 | | 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 | 42 | | wordCount | 1730 | | uniqueNames | 20 | | maxNameDensity | 0.81 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "Quinn" | | discoveredNames | | Camden | 1 | | Harlow | 1 | | Quinn | 14 | | Metropolitan | 1 | | Police | 1 | | Tube | 2 | | Veil | 2 | | Market | 4 | | Morris | 4 | | Stormwater | 1 | | Spanish-laced | 1 | | Saint | 1 | | Christopher | 1 | | Herrera | 2 | | Raven | 1 | | Nest | 1 | | Seville | 1 | | London | 1 | | Blood | 1 | | Oliver-skinned | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Police" | | 3 | "Market" | | 4 | "Morris" | | 5 | "Stormwater" | | 6 | "Saint" | | 7 | "Christopher" | | 8 | "Herrera" |
| | places | | 0 | "Raven" | | 1 | "Seville" | | 2 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 99.49% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 99 | | glossingSentenceCount | 2 | | matches | | 0 | "ink that seemed to rearrange when Quinn glanced away" | | 1 | "uninterrupted; apparently stabbings and polic" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1880 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 133 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 28 | | mean | 67.14 | | std | 39.39 | | cv | 0.587 | | sampleLengths | | 0 | 119 | | 1 | 93 | | 2 | 86 | | 3 | 75 | | 4 | 66 | | 5 | 56 | | 6 | 89 | | 7 | 129 | | 8 | 139 | | 9 | 5 | | 10 | 124 | | 11 | 105 | | 12 | 98 | | 13 | 4 | | 14 | 98 | | 15 | 44 | | 16 | 30 | | 17 | 15 | | 18 | 21 | | 19 | 73 | | 20 | 21 | | 21 | 20 | | 22 | 40 | | 23 | 109 | | 24 | 41 | | 25 | 38 | | 26 | 86 | | 27 | 56 |
| |
| 99.60% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 124 | | matches | | 0 | "were snuffed" | | 1 | "being butchered" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 284 | | matches | | 0 | "was pulling" | | 1 | "was going" | | 2 | "was feeding" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 5 | | flaggedSentences | 9 | | totalSentences | 133 | | ratio | 0.068 | | matches | | 0 | "The man ahead—hooded, lean, the right height and gait of the one who had slipped the message into her dead partner’s old flat—had maybe forty meters on her and was pulling for the shadows." | | 1 | "There—scrape of stone, hurried breath." | | 2 | "She checked the watch again—still ticking, still her only tether to ordinary time—and pressed on." | | 3 | "Sodium emergency strips were snuffed; instead, jars of luminescence hung from wires, casting a greenish underwater light across wet floors." | | 4 | "A woman with too many bracelets sold powders that shifted color when she tilted the vials; a man with scarred hands arranged rows of yellowed teeth in velvet trays; farther on someone offered stacks of maps drawn in silver ink that seemed to rearrange when Quinn glanced away." | | 5 | "Faces turned toward her in unhurried appraisal—some human, some less so, eyes catching the jar light wrong." | | 6 | "He was fast, but fear made him careless; he skidded on a puddle and lost half a second." | | 7 | "From deeper in the market the murmur of trade continued, uninterrupted; apparently stabbings and police chases were simply weather here." | | 8 | "But the envelope that had appeared in Morris’s empty flat three nights ago—handwritten coordinates for an abandoned Tube station that shifted every full moon—had his old warrant number scrawled in the margin in a hand that looked almost like her dead partner’s." |
| |
| 76.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1759 | | adjectiveStacks | 4 | | stackExamples | | 0 | "against sweat-damp skin." | | 1 | "whole grave-quiet space" | | 2 | "tall, curly dark hair" | | 3 | "suspicious Oliver-skinned medic" |
| | adverbCount | 57 | | adverbRatio | 0.03240477544059125 | | lyAdverbCount | 15 | | lyAdverbRatio | 0.008527572484366117 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 133 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 133 | | mean | 14.14 | | std | 9.25 | | cv | 0.654 | | sampleLengths | | 0 | 38 | | 1 | 26 | | 2 | 17 | | 3 | 4 | | 4 | 34 | | 5 | 27 | | 6 | 25 | | 7 | 3 | | 8 | 23 | | 9 | 15 | | 10 | 14 | | 11 | 7 | | 12 | 28 | | 13 | 17 | | 14 | 20 | | 15 | 8 | | 16 | 9 | | 17 | 24 | | 18 | 9 | | 19 | 13 | | 20 | 12 | | 21 | 5 | | 22 | 23 | | 23 | 22 | | 24 | 7 | | 25 | 9 | | 26 | 2 | | 27 | 11 | | 28 | 20 | | 29 | 23 | | 30 | 18 | | 31 | 11 | | 32 | 13 | | 33 | 20 | | 34 | 12 | | 35 | 15 | | 36 | 20 | | 37 | 17 | | 38 | 20 | | 39 | 26 | | 40 | 3 | | 41 | 23 | | 42 | 4 | | 43 | 7 | | 44 | 9 | | 45 | 21 | | 46 | 19 | | 47 | 2 | | 48 | 2 | | 49 | 17 |
| |
| 69.92% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 2 | | diversityRatio | 0.42857142857142855 | | totalSentences | 133 | | uniqueOpeners | 57 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 116 | | matches | (empty) | | ratio | 0 | |
| 78.62% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 41 | | totalSentences | 116 | | matches | | 0 | "She did not slow." | | 1 | "She clocked the turn he" | | 2 | "She rounded the corner in" | | 3 | "She tore free and hit" | | 4 | "He had disappeared into the" | | 5 | "She moved along the wall," | | 6 | "She saw him at the" | | 7 | "He was feeding something into" | | 8 | "He slipped through and the" | | 9 | "Her fingers closed on cold" | | 10 | "She braced, military training screaming" | | 11 | "It sealed behind her with" | | 12 | "She checked the watch again—still" | | 13 | "She had heard the name" | | 14 | "She could almost see Morris" | | 15 | "She stepped over the line." | | 16 | "She was ten meters away" | | 17 | "He bolted left between two" | | 18 | "She followed hard." | | 19 | "He was fast, but fear" |
| | ratio | 0.353 | |
| 20.34% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 102 | | totalSentences | 116 | | matches | | 0 | "Detective Harlow Quinn ran hard," | | 1 | "Water streamed off the sharp" | | 2 | "She did not slow." | | 3 | "The man ahead—hooded, lean, the" | | 4 | "She clocked the turn he" | | 5 | "This one knew." | | 6 | "Military precision kept her own" | | 7 | "Brown eyes fixed on the" | | 8 | "The shout tore from her" | | 9 | "A bin lid clattered somewhere" | | 10 | "She rounded the corner in" | | 11 | "Quinn cleared the fence a" | | 12 | "She tore free and hit" | | 13 | "The yard smelled of rust" | | 14 | "He had disappeared into the" | | 15 | "Quinn drew her extendable baton" | | 16 | "Emergency lighting flickered somewhere deeper," | | 17 | "Water ran in sheets from" | | 18 | "She moved along the wall," | | 19 | "There—scrape of stone, hurried breath." |
| | ratio | 0.879 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 116 | | matches | (empty) | | ratio | 0 | |
| 83.33% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 72 | | technicalSentenceCount | 6 | | matches | | 0 | "She had heard the name in three separate narcotics briefings that never quite stuck, the kind of tip that evaporated when you pressed." | | 1 | "The market swallowed sound and spat out new ones: glass chiming, low laughter, the wet slap of something meaty being butchered on a butcher’s block that had onc…" | | 2 | "A woman with too many bracelets sold powders that shifted color when she tilted the vials; a man with scarred hands arranged rows of yellowed teeth in velvet tr…" | | 3 | "He spun, pulling a short blade that caught the lantern light in a ugly white flare." | | 4 | "But the envelope that had appeared in Morris’s empty flat three nights ago—handwritten coordinates for an abandoned Tube station that shifted every full moon—ha…" | | 5 | "She looked from the suspicious Oliver-skinned medic to the twitching, bleeding man in her grip, then out at the green-lit tunnel that led deeper into the Market…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 6 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 25.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 2 | | fancyTags | | 0 | "she hissed (hiss)" | | 1 | "he choked (choke)" |
| | dialogueSentences | 16 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 0.5 | | effectiveRatio | 0.25 | |