| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 1 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1189 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 62.15% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1189 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "fractured" | | 1 | "reminder" | | 2 | "measured" | | 3 | "flickered" | | 4 | "streaming" | | 5 | "echoes" | | 6 | "lurch" | | 7 | "chill" | | 8 | "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 | 70 | | matches | (empty) | |
| 61.22% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 3 | | hedgeCount | 1 | | narrationSentences | 70 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 70 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 50 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1180 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 2 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 22 | | wordCount | 1177 | | uniqueNames | 11 | | maxNameDensity | 0.76 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | Quinn | 9 | | Soho | 1 | | Raven | 1 | | Nest | 1 | | Morris | 3 | | Internal | 1 | | Camden | 2 | | Station | 1 | | Closed | 1 | | Renovation | 1 | | Tube | 1 |
| | persons | | 0 | "Quinn" | | 1 | "Raven" | | 2 | "Morris" | | 3 | "Internal" | | 4 | "Station" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 65 | | 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 | 1180 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 70 | | matches | (empty) | |
| 48.09% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 12 | | mean | 98.33 | | std | 31.3 | | cv | 0.318 | | sampleLengths | | 0 | 106 | | 1 | 121 | | 2 | 129 | | 3 | 117 | | 4 | 115 | | 5 | 121 | | 6 | 114 | | 7 | 12 | | 8 | 85 | | 9 | 110 | | 10 | 76 | | 11 | 74 |
| |
| 95.24% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 70 | | matches | | 0 | "was gone" | | 1 | "been delayed" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 195 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 5 | | flaggedSentences | 13 | | totalSentences | 70 | | ratio | 0.186 | | matches | | 0 | "Her breath came in measured bursts; eighteen years on the force had taught her that panic solved nothing." | | 1 | "Behind her eyes, though, the ghost of DS Morris flickered—the way he had laughed at her insistence on protocol the night before the case broke open, the night the scene photographs had shown nothing but an empty alley and a single set of tracks that ended in mid-air." | | 2 | "A taxi horn blared; headlights bloomed, then vanished behind curtains of rain." | | 3 | "The clique's network ran through half the city's underbelly, she had written in her private notes—drugs that altered perception, weapons that left wounds clean as surgery, information sold by men who claimed to speak with the dead." | | 4 | "A maintenance sign hung crooked above the entrance: Camden Station—Closed for Renovation." | | 5 | "Echoes drifted up—low voices, the scrape of something metallic on stone." | | 6 | "Backup remained five minutes out, maybe more; the uniformed response she had risked calling midway through the chase had been delayed by the storm." | | 7 | "The station smelled wrong—too warm, laced with something herbal and acrid that coated the back of her throat." | | 8 | "The man pressed a small, pale object—bone, she realized with a lurch—into a slot cut beside the frame." | | 9 | "The bone token had dropped to the damp floor; she stooped, retrieved it, and studied the smooth curve for half a second." | | 10 | "Through the narrowing gap she could see the stalls now—rows of them selling trinkets that looked too old for any legitimate shop, information whistled between hooded figures, alchemical bottles that steamed in the underground chill." | | 11 | "This runner carried their taint; his trail could thread the whole operation together." | | 12 | "One more step and the bone token might work for her as it had for him—illegal, untested, a gamble on the same forces that had taken Morris." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1196 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 28 | | adverbRatio | 0.023411371237458192 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.0008361204013377926 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 70 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 70 | | mean | 16.86 | | std | 8.64 | | cv | 0.512 | | sampleLengths | | 0 | 25 | | 1 | 19 | | 2 | 13 | | 3 | 18 | | 4 | 31 | | 5 | 23 | | 6 | 20 | | 7 | 28 | | 8 | 26 | | 9 | 24 | | 10 | 15 | | 11 | 5 | | 12 | 20 | | 13 | 12 | | 14 | 18 | | 15 | 48 | | 16 | 11 | | 17 | 8 | | 18 | 12 | | 19 | 9 | | 20 | 8 | | 21 | 16 | | 22 | 20 | | 23 | 37 | | 24 | 7 | | 25 | 8 | | 26 | 13 | | 27 | 15 | | 28 | 29 | | 29 | 12 | | 30 | 10 | | 31 | 17 | | 32 | 11 | | 33 | 12 | | 34 | 14 | | 35 | 24 | | 36 | 14 | | 37 | 9 | | 38 | 18 | | 39 | 14 | | 40 | 16 | | 41 | 19 | | 42 | 18 | | 43 | 13 | | 44 | 11 | | 45 | 29 | | 46 | 24 | | 47 | 4 | | 48 | 8 | | 49 | 14 |
| |
| 64.76% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.4142857142857143 | | totalSentences | 70 | | uniqueOpeners | 29 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 70 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 14 | | totalSentences | 70 | | matches | | 0 | "Her salt-and-pepper hair clung flat" | | 1 | "She had tailed him from" | | 2 | "He veered between two shuttered" | | 3 | "Her breath came in measured" | | 4 | "She followed the runner across" | | 5 | "She needed the runner alive" | | 6 | "She paused at the top" | | 7 | "Her watch ticked against her" | | 8 | "She found the runner again" | | 9 | "It felt light, almost warm." | | 10 | "She stood at the threshold," | | 11 | "She had buried one already," | | 12 | "She could turn back." | | 13 | "She crossed the threshold, one" |
| | ratio | 0.2 | |
| 74.29% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 54 | | totalSentences | 70 | | matches | | 0 | "Harlow Quinn's lungs clawed at" | | 1 | "The rain came in hard" | | 2 | "Puddles exploded beneath her steps," | | 3 | "Her salt-and-pepper hair clung flat" | | 4 | "The leather watch on her" | | 5 | "Quinn closed the distance by" | | 6 | "She had tailed him from" | | 7 | "The bar's hidden bookshelf passage" | | 8 | "The words ripped from her" | | 9 | "The suspect did not slow." | | 10 | "He veered between two shuttered" | | 11 | "Quinn adjusted her angle, military" | | 12 | "Her breath came in measured" | | 13 | "She followed the runner across" | | 14 | "A taxi horn blared; headlights" | | 15 | "The suspect clipped a food-cart" | | 16 | "Quinn's hand brushed the grip" | | 17 | "The clique's network ran through" | | 18 | "She needed the runner alive" | | 19 | "The streets narrowed as they" |
| | ratio | 0.771 | |
| 71.43% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 70 | | matches | | 0 | "Now the package was gone," |
| | ratio | 0.014 | |
| 64.94% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 55 | | technicalSentenceCount | 6 | | matches | | 0 | "Quinn closed the distance by a stride, her green eyes tracking the black jacket that flapped like a wounded wing." | | 1 | "Behind her eyes, though, the ghost of DS Morris flickered—the way he had laughed at her insistence on protocol the night before the case broke open, the night t…" | | 2 | "The clique's network ran through half the city's underbelly, she had written in her private notes—drugs that altered perception, weapons that left wounds clean …" | | 3 | "Quinn saw tables, low lanterns, figures moving between them, some carrying vials that caught the light like liquid starlight, others bartering bundles of dried …" | | 4 | "Through the narrowing gap she could see the stalls now—rows of them selling trinkets that looked too old for any legitimate shop, information whistled between h…" | | 5 | "One more step and the bone token might work for her as it had for him—illegal, untested, a gamble on the same forces that had taken Morris." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 1 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |