| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 1 | | adverbTags | | 0 | "He gestured vaguely [vaguely]" |
| | dialogueSentences | 35 | | tagDensity | 0.086 | | leniency | 0.171 | | rawRatio | 0.333 | | effectiveRatio | 0.057 | |
| 96.54% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1444 | | totalAiIsmAdverbs | 1 | | found | | 0 | | adverb | "deliberately" | | count | 1 |
|
| | 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.84% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1444 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "pawn" | | 1 | "echoed" | | 2 | "flickered" | | 3 | "weight" | | 4 | "quickened" | | 5 | "footsteps" | | 6 | "fragmented" | | 7 | "silence" |
| |
| 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 | 111 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 111 | | filterMatches | | | hedgeMatches | | 0 | "seemed to" | | 1 | "appeared to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 143 | | 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 | 1432 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 11 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 28 | | wordCount | 1036 | | uniqueNames | 16 | | maxNameDensity | 0.97 | | worstName | "Harlow" | | maxWindowNameDensity | 2 | | worstWindowName | "Harlow" | | discoveredNames | | Quinn | 1 | | Charing | 1 | | Cross | 1 | | Road | 1 | | Camden | 2 | | Soho | 1 | | Raven | 1 | | Nest | 1 | | Tube | 1 | | Underground | 1 | | Veil | 1 | | Market | 1 | | Morris | 1 | | Christopher | 1 | | Harlow | 10 | | Tomás | 3 |
| | persons | | 0 | "Quinn" | | 1 | "Morris" | | 2 | "Christopher" | | 3 | "Harlow" | | 4 | "Tomás" |
| | places | | 0 | "Charing" | | 1 | "Cross" | | 2 | "Road" | | 3 | "Camden" | | 4 | "Soho" | | 5 | "Raven" |
| | globalScore | 1 | | windowScore | 1 | |
| 44.37% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 71 | | glossingSentenceCount | 3 | | matches | | 0 | "looked like an old Tube station entrance" | | 1 | "crystals that seemed to glow from within, jars of liquid that moved on their own, bundles of dried herbs that smelled of nothing she could name" | | 2 | "looked like a small bone carved with symb" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1432 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 143 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 69 | | mean | 20.75 | | std | 17.71 | | cv | 0.854 | | sampleLengths | | 0 | 39 | | 1 | 2 | | 2 | 46 | | 3 | 8 | | 4 | 3 | | 5 | 49 | | 6 | 66 | | 7 | 4 | | 8 | 35 | | 9 | 38 | | 10 | 6 | | 11 | 45 | | 12 | 34 | | 13 | 5 | | 14 | 19 | | 15 | 6 | | 16 | 10 | | 17 | 32 | | 18 | 5 | | 19 | 3 | | 20 | 9 | | 21 | 37 | | 22 | 50 | | 23 | 13 | | 24 | 35 | | 25 | 6 | | 26 | 35 | | 27 | 83 | | 28 | 35 | | 29 | 18 | | 30 | 5 | | 31 | 10 | | 32 | 22 | | 33 | 14 | | 34 | 20 | | 35 | 54 | | 36 | 3 | | 37 | 12 | | 38 | 6 | | 39 | 10 | | 40 | 27 | | 41 | 12 | | 42 | 3 | | 43 | 30 | | 44 | 5 | | 45 | 18 | | 46 | 24 | | 47 | 23 | | 48 | 34 | | 49 | 8 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 111 | | matches | | |
| 54.28% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 183 | | matches | | 0 | "was running" | | 1 | "was crossing" | | 2 | "was getting" | | 3 | "were waiting" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 143 | | ratio | 0.077 | | matches | | 0 | "The suspect—a lean figure in a dark hoodie—vaulted over a barrier and disappeared down an alley." | | 1 | "The disappearances in Soho all connected back to this man—seen near each victim's last known location, caught on grainy CCTV footage, always slipping away before uniforms could grab him." | | 2 | "Something about the air changed as she went deeper—a thickness, a weight that pressed against her eardrums." | | 3 | "The torch caught movement ahead—a flash of dark fabric disappearing around a corner." | | 4 | "Tables covered in objects that caught the light strangely—crystals that seemed to glow from within, jars of liquid that moved on their own, bundles of dried herbs that smelled of nothing she could name." | | 5 | "She'd heard whispers about it during the Morris case—fragmented testimony from witnesses who later recanted, vague references in files that had been scrubbed from the system." | | 6 | "Not to help her—simply to get out of the way." | | 7 | "This was someone else—a man with olive skin and curly dark hair, wearing a leather jacket over a grey t-shirt." | | 8 | "Something shifted in his expression—recognition, perhaps, or calculation." | | 9 | "The man laughed—a short, humourless sound." | | 10 | "The trail had gone cold a dozen times before—she couldn't let it happen again." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1052 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 40 | | adverbRatio | 0.03802281368821293 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.011406844106463879 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 143 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 143 | | mean | 10.01 | | std | 7.36 | | cv | 0.735 | | sampleLengths | | 0 | 4 | | 1 | 19 | | 2 | 16 | | 3 | 2 | | 4 | 8 | | 5 | 13 | | 6 | 14 | | 7 | 11 | | 8 | 5 | | 9 | 3 | | 10 | 3 | | 11 | 4 | | 12 | 14 | | 13 | 17 | | 14 | 14 | | 15 | 7 | | 16 | 29 | | 17 | 17 | | 18 | 13 | | 19 | 4 | | 20 | 10 | | 21 | 12 | | 22 | 13 | | 23 | 15 | | 24 | 1 | | 25 | 3 | | 26 | 19 | | 27 | 6 | | 28 | 5 | | 29 | 9 | | 30 | 11 | | 31 | 5 | | 32 | 15 | | 33 | 4 | | 34 | 30 | | 35 | 2 | | 36 | 3 | | 37 | 19 | | 38 | 6 | | 39 | 10 | | 40 | 4 | | 41 | 14 | | 42 | 14 | | 43 | 5 | | 44 | 3 | | 45 | 9 | | 46 | 10 | | 47 | 17 | | 48 | 3 | | 49 | 7 |
| |
| 56.64% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.3776223776223776 | | totalSentences | 143 | | uniqueOpeners | 54 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 100 | | matches | | 0 | "Then a crackle." | | 1 | "Too many branching corridors." | | 2 | "Then a ripple of movement" |
| | ratio | 0.03 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 22 | | totalSentences | 100 | | matches | | 0 | "Her boots splashed through inches" | | 1 | "She'd been watching him for" | | 2 | "Her jacket caught on a" | | 3 | "She pulled out her torch" | | 4 | "She keyed her radio." | | 5 | "She checked her phone." | | 6 | "She clipped the radio to" | | 7 | "Her breath misted in the" | | 8 | "Her footsteps echoed in ways" | | 9 | "She rounded the corner and" | | 10 | "She'd heard whispers about it" | | 11 | "Her suspect was crossing the" | | 12 | "She kept her torch up" | | 13 | "His gaze dropped to her" | | 14 | "He stepped closer, lowering his" | | 15 | "He gestured vaguely upward" | | 16 | "She could still catch him" | | 17 | "She had perhaps two minutes" | | 18 | "She tried her phone." | | 19 | "Her suspect was getting further" |
| | ratio | 0.22 | |
| 35.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 85 | | totalSentences | 100 | | matches | | 0 | "Harlow Quinn rounded the corner" | | 1 | "The suspect—a lean figure in" | | 2 | "Her boots splashed through inches" | | 3 | "The alley narrowed between a" | | 4 | "Dumpsters pressed against both walls," | | 5 | "The smell of rotting food" | | 6 | "A crash echoed from ahead." | | 7 | "Metal on metal." | | 8 | "The figure didn't slow." | | 9 | "Harlow pushed harder, her thighs" | | 10 | "The suspect was fifty metres" | | 11 | "Streetlights flickered overhead, casting pools" | | 12 | "She'd been watching him for" | | 13 | "The disappearances in Soho all" | | 14 | "Tonight she'd followed him from" | | 15 | "The bookshelf had been sliding" | | 16 | "The suspect ducked through a" | | 17 | "Harlow hit it at speed," | | 18 | "Her jacket caught on a" | | 19 | "The suspect dropped into the" |
| | ratio | 0.85 | |
| 50.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 100 | | matches | | | ratio | 0.01 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 50 | | technicalSentenceCount | 3 | | matches | | 0 | "The GPS signal bounced erratically, placing her somewhere between two streets that shouldn't intersect." | | 1 | "Her footsteps echoed in ways that suggested the space around her was far larger than a simple tunnel." | | 2 | "She was alone, underground, in a space that operated by rules she didn't understand, surrounded by people who clearly wanted her gone." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 3 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |