| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 24 | | adverbTagCount | 1 | | adverbTags | | 0 | "She swallowed hard [hard]" |
| | dialogueSentences | 54 | | tagDensity | 0.444 | | leniency | 0.889 | | rawRatio | 0.042 | | effectiveRatio | 0.037 | |
| 80.84% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1827 | | totalAiIsmAdverbs | 7 | | found | | | highlights | | 0 | "quickly" | | 1 | "really" | | 2 | "slowly" | | 3 | "suddenly" | | 4 | "very" |
| |
| 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) | |
| 80.84% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1827 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "stomach" | | 1 | "silence" | | 2 | "flickered" | | 3 | "whisper" | | 4 | "could feel" | | 5 | "pulse" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
| | 1 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | 0 | "eyes widened" | | 1 | "hung in the air" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 90 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 90 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 119 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 55 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1831 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 26 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 25 | | wordCount | 1362 | | uniqueNames | 9 | | maxNameDensity | 0.44 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Eva" | | discoveredNames | | Ptolemy | 4 | | Eva | 4 | | Thames | 1 | | Moreau | 2 | | Evan | 1 | | Rory | 6 | | Silas | 2 | | Lucien | 4 | | London | 1 |
| | persons | | 0 | "Ptolemy" | | 1 | "Eva" | | 2 | "Moreau" | | 3 | "Evan" | | 4 | "Rory" | | 5 | "Silas" | | 6 | "Lucien" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 63 | | 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 | 1831 | | matches | (empty) | |
| 26.61% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 5 | | totalSentences | 119 | | matches | | 0 | "found that fact" | | 1 | "collect — that cruelty" | | 2 | "learned that I" | | 3 | "chose that moment" | | 4 | "was that he" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 65 | | mean | 28.17 | | std | 24.67 | | cv | 0.876 | | sampleLengths | | 0 | 69 | | 1 | 28 | | 2 | 60 | | 3 | 64 | | 4 | 4 | | 5 | 75 | | 6 | 26 | | 7 | 12 | | 8 | 48 | | 9 | 3 | | 10 | 12 | | 11 | 18 | | 12 | 40 | | 13 | 4 | | 14 | 1 | | 15 | 49 | | 16 | 44 | | 17 | 13 | | 18 | 17 | | 19 | 1 | | 20 | 83 | | 21 | 23 | | 22 | 8 | | 23 | 6 | | 24 | 8 | | 25 | 68 | | 26 | 5 | | 27 | 1 | | 28 | 3 | | 29 | 19 | | 30 | 83 | | 31 | 5 | | 32 | 20 | | 33 | 34 | | 34 | 3 | | 35 | 58 | | 36 | 35 | | 37 | 12 | | 38 | 33 | | 39 | 81 | | 40 | 25 | | 41 | 45 | | 42 | 11 | | 43 | 84 | | 44 | 40 | | 45 | 6 | | 46 | 10 | | 47 | 2 | | 48 | 35 | | 49 | 65 |
| |
| 97.47% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 90 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 227 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 119 | | ratio | 0.067 | | matches | | 0 | "Rory looked up from the open ledger on Eva's desk—she'd been skimming the columns of Eva's research notes, trying to count how many references to \"the Avaros breach\" she could stomach before her eyes crossed—and listened to the silence after the knock the way you listened to a stopped heartbeat." | | 1 | "\"And yet you've stayed away for eight months.\" The words came out before she could file them, and she hated the way they sounded — sharp and small and full of splinters." | | 2 | "The bleeding had stopped, but the wound was ugly — a gash across the back of his wrist, already bruising into a constellation of purples and blues." | | 3 | "The cruelty that had been in his smile the last time she saw him — the night he'd stood outside Silas's bar in the rain and told her she had been nothing but a job, a name on a piece of paper, a debt he'd been paid to collect — that cruelty had been well-worn armor." | | 4 | "\"—and then my father learned that I had taken an interest in a human. My interest, he decided, was a liability. He sent word that he would remove the liability himself.\"" | | 5 | "His gaze burned — amber and black, and there was no cruelty in it now, only hunger and ruin and a desperate, nearly embarrassing sincerity." | | 6 | "She could feel his pulse through his fingertips — quick, nervous, nothing like the man who fixed problems with a smile and a blade disguised as a cane." | | 7 | "She allowed herself the smallest of smiles — the first one she'd given him since he'd walked into her doorway with blood on his cuffs and a confession on his tongue." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1147 | | adjectiveStacks | 1 | | stackExamples | | 0 | "ridiculous ivory-handled cane" |
| | adverbCount | 27 | | adverbRatio | 0.023539668700959023 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.0034873583260680036 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 119 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 119 | | mean | 15.39 | | std | 12.98 | | cv | 0.844 | | sampleLengths | | 0 | 19 | | 1 | 50 | | 2 | 11 | | 3 | 7 | | 4 | 10 | | 5 | 24 | | 6 | 19 | | 7 | 17 | | 8 | 24 | | 9 | 40 | | 10 | 4 | | 11 | 31 | | 12 | 44 | | 13 | 4 | | 14 | 5 | | 15 | 17 | | 16 | 12 | | 17 | 3 | | 18 | 20 | | 19 | 25 | | 20 | 3 | | 21 | 6 | | 22 | 6 | | 23 | 2 | | 24 | 6 | | 25 | 10 | | 26 | 32 | | 27 | 4 | | 28 | 4 | | 29 | 4 | | 30 | 1 | | 31 | 3 | | 32 | 34 | | 33 | 8 | | 34 | 4 | | 35 | 44 | | 36 | 6 | | 37 | 7 | | 38 | 9 | | 39 | 8 | | 40 | 1 | | 41 | 12 | | 42 | 34 | | 43 | 17 | | 44 | 9 | | 45 | 11 | | 46 | 11 | | 47 | 12 | | 48 | 8 | | 49 | 6 |
| |
| 42.30% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.31932773109243695 | | totalSentences | 119 | | uniqueOpeners | 38 | |
| 40.65% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 82 | | matches | | 0 | "Then she worked the deadbolts," |
| | ratio | 0.012 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 47 | | totalSentences | 82 | | matches | | 0 | "She rose, and Ptolemy abandoned" | | 1 | "She reached the door, paused" | | 2 | "His hair was still immaculately" | | 3 | "She counted to five." | | 4 | "She was good at counting." | | 5 | "It was how she'd survived" | | 6 | "His gaze traveled from her" | | 7 | "She kept her voice flat" | | 8 | "It didn't reach those mismatched" | | 9 | "She set her jaw." | | 10 | "He considered this." | | 11 | "she said, because she was" | | 12 | "His smile curved, genuine this" | | 13 | "He stepped past her into" | | 14 | "He was tall enough that" | | 15 | "He paused at the scatter" | | 16 | "He did not hiss, which" | | 17 | "She closed the door and" | | 18 | "she offered, heading for the" | | 19 | "She heard the soft sound" |
| | ratio | 0.573 | |
| 20.98% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 72 | | totalSentences | 82 | | matches | | 0 | "The knock came at half" | | 1 | "Rory looked up from the" | | 2 | "Eva had installed them for" | | 3 | "Rory had always found that" | | 4 | "She rose, and Ptolemy abandoned" | | 5 | "The flat smelled of cardamom" | | 6 | "She reached the door, paused" | | 7 | "The viewer distorted him into" | | 8 | "Lucien Moreau stood on her" | | 9 | "His hair was still immaculately" | | 10 | "She counted to five." | | 11 | "She was good at counting." | | 12 | "It was how she'd survived" | | 13 | "Lucien didn't move." | | 14 | "His gaze traveled from her" | | 15 | "She kept her voice flat" | | 16 | "It didn't reach those mismatched" | | 17 | "The words came out before" | | 18 | "She set her jaw." | | 19 | "He considered this." |
| | ratio | 0.878 | |
| 60.98% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 82 | | matches | | 0 | "Even through the fisheye lens" |
| | ratio | 0.012 | |
| 20.91% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 41 | | technicalSentenceCount | 7 | | matches | | 0 | "The knock came at half past ten, a hard triple rap that made Ptolemy's ears flatten against his skull." | | 1 | "Lucien Moreau stood on her doorstep with his hands clasped behind his back and that ridiculous ivory-handled cane hooked over one forearm, looking for all the w…" | | 2 | "The landing light flickered, and she noticed for the first time that his overcoat was torn along the left shoulder, a long slash that had missed the fabric's in…" | | 3 | "The cruelty that had been in his smile the last time she saw him — the night he'd stood outside Silas's bar in the rain and told her she had been nothing but a …" | | 4 | "Ptolemy chose that moment to erupt from under the sofa, shoot across the flat, and launch himself onto the bookshelf, dislodging a stack of scrolls that cascade…" | | 5 | "She could feel his pulse through his fingertips — quick, nervous, nothing like the man who fixed problems with a smile and a blade disguised as a cane." | | 6 | "He looked at her for a long moment, amber and black both holding steady, and then he gave a slow, wondering nod, as though he'd just found something he'd spent …" |
| |
| 83.33% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 24 | | uselessAdditionCount | 2 | | matches | | 0 | "Rory looked up, trying to count how many references to" | | 1 | "he said, low" |
| |
| 94.44% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 10 | | fancyCount | 3 | | fancyTags | | 0 | "he continued (continue)" | | 1 | "he murmured (murmur)" | | 2 | "he agreed (agree)" |
| | dialogueSentences | 54 | | tagDensity | 0.185 | | leniency | 0.37 | | rawRatio | 0.3 | | effectiveRatio | 0.111 | |