| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 18 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 39 | | tagDensity | 0.462 | | leniency | 0.923 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 96.25% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1333 | | totalAiIsmAdverbs | 1 | | found | | | highlights | | |
| 100.00% | AI-ism character names | Target: 0 AI-default names (16 tracked, −20% each) | | codexExemptions | | | found | (empty) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 51.24% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1333 | | totalAiIsms | 13 | | found | | | highlights | | 0 | "silence" | | 1 | "potential" | | 2 | "calculated" | | 3 | "weight" | | 4 | "predator" | | 5 | "pulse" | | 6 | "tracing" | | 7 | "unreadable" | | 8 | "systematic" | | 9 | "electric" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 1 | | narrationSentences | 88 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 88 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 109 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 39 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1317 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 36 | | wordCount | 968 | | uniqueNames | 23 | | maxNameDensity | 0.83 | | worstName | "Aurora" | | maxWindowNameDensity | 2 | | worstWindowName | "Silas" | | discoveredNames | | November | 1 | | Raven | 1 | | Nest | 1 | | Greek | 1 | | Street | 1 | | Budapest | 1 | | Prague | 1 | | Belgrade | 1 | | Silas | 7 | | Blackwood | 1 | | Cardiff | 1 | | Vienna | 1 | | Soho | 1 | | Aurora | 8 | | Bushmills | 1 | | Brendan | 1 | | Carter | 1 | | European | 1 | | Court | 1 | | Laila | 1 | | Severn | 1 | | Bridge | 1 | | London | 1 |
| | persons | | 0 | "November" | | 1 | "Raven" | | 2 | "Silas" | | 3 | "Blackwood" | | 4 | "Aurora" | | 5 | "Bushmills" | | 6 | "Brendan" | | 7 | "Carter" | | 8 | "Laila" |
| | places | | 0 | "Greek" | | 1 | "Street" | | 2 | "Budapest" | | 3 | "Prague" | | 4 | "Belgrade" | | 5 | "Cardiff" | | 6 | "Vienna" | | 7 | "Soho" | | 8 | "Severn" | | 9 | "Bridge" | | 10 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 63 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 48.14% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.519 | | wordCount | 1317 | | matches | | 0 | "not with surprise, but with a recognition" | | 1 | "not the scarred left, but the right, turning it palm-up" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 109 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 44 | | mean | 29.93 | | std | 21.43 | | cv | 0.716 | | sampleLengths | | 0 | 71 | | 1 | 57 | | 2 | 67 | | 3 | 6 | | 4 | 37 | | 5 | 3 | | 6 | 29 | | 7 | 1 | | 8 | 79 | | 9 | 16 | | 10 | 13 | | 11 | 18 | | 12 | 47 | | 13 | 4 | | 14 | 38 | | 15 | 47 | | 16 | 5 | | 17 | 2 | | 18 | 4 | | 19 | 49 | | 20 | 57 | | 21 | 8 | | 22 | 33 | | 23 | 2 | | 24 | 1 | | 25 | 52 | | 26 | 26 | | 27 | 28 | | 28 | 7 | | 29 | 31 | | 30 | 33 | | 31 | 21 | | 32 | 38 | | 33 | 45 | | 34 | 31 | | 35 | 43 | | 36 | 74 | | 37 | 16 | | 38 | 42 | | 39 | 32 | | 40 | 4 | | 41 | 35 | | 42 | 30 | | 43 | 35 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 88 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 170 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 109 | | ratio | 0.064 | | matches | | 0 | "Maps papered the walls—Budapest, Prague, Belgrade—cities pinned with rusted tacks like specimens in a case." | | 1 | "For a moment, nothing registered beyond professional assessment— sizing up a potential threat, a potential customer." | | 2 | "The mention of Brendan Carter—still practicing, still disappointed—sent a sharp pain through her sternum." | | 3 | "She remembered Silas differently—broader, unbroken, laughing at something her father had said about the European Court." | | 4 | "Silas straightened, and for a moment she saw the field agent he had been—the straight spine, the predator’s stillness." | | 5 | "Before she could withdraw, his fingers closed around her wrist—not the scarred left, but the right, turning it palm-up." | | 6 | "She thought of the secret room behind the bookshelf—she had heard the rumours from the delivery drivers, the ones who whispered about Silas’s \"meetings\"—and wondered how many other bruised girls he had catalogued without touching." |
| |
| 88.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 983 | | adjectiveStacks | 2 | | stackExamples | | 0 | "registered beyond professional assessment—" | | 1 | "many other bruised girls" |
| | adverbCount | 18 | | adverbRatio | 0.018311291963377416 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.00508646998982706 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 109 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 109 | | mean | 12.08 | | std | 8.97 | | cv | 0.742 | | sampleLengths | | 0 | 15 | | 1 | 24 | | 2 | 25 | | 3 | 7 | | 4 | 10 | | 5 | 15 | | 6 | 22 | | 7 | 10 | | 8 | 13 | | 9 | 12 | | 10 | 26 | | 11 | 16 | | 12 | 3 | | 13 | 3 | | 14 | 2 | | 15 | 12 | | 16 | 16 | | 17 | 7 | | 18 | 3 | | 19 | 3 | | 20 | 26 | | 21 | 1 | | 22 | 5 | | 23 | 7 | | 24 | 34 | | 25 | 17 | | 26 | 16 | | 27 | 11 | | 28 | 5 | | 29 | 5 | | 30 | 6 | | 31 | 2 | | 32 | 15 | | 33 | 3 | | 34 | 14 | | 35 | 16 | | 36 | 9 | | 37 | 8 | | 38 | 4 | | 39 | 19 | | 40 | 10 | | 41 | 9 | | 42 | 14 | | 43 | 12 | | 44 | 21 | | 45 | 5 | | 46 | 2 | | 47 | 4 | | 48 | 36 | | 49 | 13 |
| |
| 50.46% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.3577981651376147 | | totalSentences | 109 | | uniqueOpeners | 39 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 77 | | matches | | 0 | "Then the cloth in his" | | 1 | "Then the barkeeper returned, shoulders" | | 2 | "Simply work, and walls that" |
| | ratio | 0.039 | |
| 53.77% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 32 | | totalSentences | 77 | | matches | | 0 | "She had avoided this room" | | 1 | "She stood at the threshold," | | 2 | "He reached for a bottle," | | 3 | "She stepped forward." | | 4 | "His voice had acquired gravel" | | 5 | "She had not prepared for" | | 6 | "She had been fifteen, ambitious," | | 7 | "She had not expected to" | | 8 | "He resumed polishing the glass," | | 9 | "He set the glass down" | | 10 | "It wasn’t an accusation, but" | | 11 | "She had rented the flat" | | 12 | "She had not known the" | | 13 | "He reached for a bottle" | | 14 | "She took the glass, her" | | 15 | "He braced his hands against" | | 16 | "It burned clean, medicinal." | | 17 | "She remembered Silas differently—broader, unbroken," | | 18 | "He reached beneath the counter," | | 19 | "She rolled the glass between" |
| | ratio | 0.416 | |
| 50.91% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 63 | | totalSentences | 77 | | matches | | 0 | "The green neon bled across" | | 1 | "Aurora pushed through the heavy" | | 2 | "She had avoided this room" | | 3 | "Tonight, the silence upstairs had" | | 4 | "She stood at the threshold," | | 5 | "Maps papered the walls—Budapest, Prague," | | 6 | "The air tasted of charred" | | 7 | "A man moved behind the" | | 8 | "Auburn hair, heavy with grey" | | 9 | "He reached for a bottle," | | 10 | "Aurora’s fingers twitched toward the" | | 11 | "She stepped forward." | | 12 | "A floorboard creaked." | | 13 | "Hazel eyes, flecked with gold," | | 14 | "His voice had acquired gravel" | | 15 | "The name emerged flat, toneless." | | 16 | "She had not prepared for" | | 17 | "She had been fifteen, ambitious," | | 18 | "She had not expected to" | | 19 | "He resumed polishing the glass," |
| | ratio | 0.818 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 77 | | matches | | 0 | "If she had, she might" | | 1 | "Now the lines around his" | | 2 | "Before she could withdraw, his" |
| | ratio | 0.039 | |
| 90.59% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 41 | | technicalSentenceCount | 3 | | matches | | 0 | "Aurora pushed through the heavy oak door of The Raven’s Nest, her shoulders hunched against the wind that had chased her down Greek Street." | | 1 | "His voice had acquired gravel since she’d last heard it, a whisky-and-cigarette rasp that belonged to someone older than the fifty-eight she calculated him to b…" | | 2 | "In her mental geography, Silas Blackwood remained sealed in the Cardiff years, a figure who appeared at her father’s dinner table in a linen suit, discussing ju…" |
| |
| 41.67% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 18 | | uselessAdditionCount | 3 | | matches | | 0 | "He braced, the signet ring tapping a slow rhythm against the wood" | | 1 | "he repeated, quieter" | | 2 | "He released, the loss of contact immediate" |
| |
| 98.72% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 2 | | fancyTags | | 0 | "Aurora laughed (laugh)" | | 1 | "he repeated (repeat)" |
| | dialogueSentences | 39 | | tagDensity | 0.205 | | leniency | 0.41 | | rawRatio | 0.25 | | effectiveRatio | 0.103 | |