| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 20 | | adverbTagCount | 1 | | adverbTags | | 0 | "The man looked around [around]" |
| | dialogueSentences | 49 | | tagDensity | 0.408 | | leniency | 0.816 | | rawRatio | 0.05 | | effectiveRatio | 0.041 | |
| 89.81% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1472 | | totalAiIsmAdverbs | 3 | | 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) | |
| 83.02% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1472 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "warmth" | | 1 | "weight" | | 2 | "tension" | | 3 | "traced" |
| |
| 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 | 84 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 84 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 112 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 56 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1485 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 23 | | unquotedAttributions | 1 | | matches | | 0 | "Rory noticed he placed it exactly within reach — a habit, she guessed, worn as smooth as the brass head." |
| |
| 33.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 49 | | wordCount | 1068 | | uniqueNames | 8 | | maxNameDensity | 1.87 | | worstName | "Silas" | | maxWindowNameDensity | 4 | | worstWindowName | "Tom" | | discoveredNames | | Rory | 8 | | Pimlico | 1 | | Raven | 1 | | Nest | 1 | | Silas | 20 | | Tom | 16 | | Prague | 1 | | Lisbon | 1 |
| | persons | | 0 | "Rory" | | 1 | "Raven" | | 2 | "Silas" | | 3 | "Tom" |
| | places | | | globalScore | 0.564 | | windowScore | 0.333 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 58 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.673 | | wordCount | 1485 | | matches | | 0 | "not at Silas, but at the ring" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 112 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 56 | | mean | 26.52 | | std | 23.85 | | cv | 0.899 | | sampleLengths | | 0 | 56 | | 1 | 29 | | 2 | 67 | | 3 | 13 | | 4 | 29 | | 5 | 29 | | 6 | 3 | | 7 | 77 | | 8 | 87 | | 9 | 15 | | 10 | 35 | | 11 | 16 | | 12 | 17 | | 13 | 2 | | 14 | 66 | | 15 | 8 | | 16 | 5 | | 17 | 5 | | 18 | 55 | | 19 | 7 | | 20 | 67 | | 21 | 12 | | 22 | 10 | | 23 | 5 | | 24 | 16 | | 25 | 48 | | 26 | 6 | | 27 | 12 | | 28 | 5 | | 29 | 43 | | 30 | 10 | | 31 | 58 | | 32 | 4 | | 33 | 74 | | 34 | 4 | | 35 | 33 | | 36 | 3 | | 37 | 39 | | 38 | 1 | | 39 | 72 | | 40 | 16 | | 41 | 18 | | 42 | 53 | | 43 | 5 | | 44 | 3 | | 45 | 4 | | 46 | 57 | | 47 | 22 | | 48 | 20 | | 49 | 7 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 84 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 189 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 112 | | ratio | 0.098 | | matches | | 0 | "His shoulders went still in a way she'd learned to read over two years of living above his bar — the stillness of a man who had heard a sound in the dark and was deciding whether it was a floorboard or a footstep." | | 1 | "He was somewhere north of Silas's age but wore it worse — the rain had flattened thin grey hair against his skull, and his coat hung off him the way coats hang off men who used to fill them." | | 2 | "\"Evening.\" The man looked around the bar the way soldiers look around rooms — exits first, faces second." | | 3 | "Silas came out from behind the counter, and Rory saw the limp she usually stopped noticing — tonight it announced itself, his left knee refusing to take his weight the way it had refused for two decades." | | 4 | "Rory noticed he placed it exactly within reach — a habit, she guessed, worn as smooth as the brass head." | | 5 | "He gave his head the smallest shake — not dismissal." | | 6 | "\"He'd have ordered five and stolen yours.\" Tom looked over, and for a second the old face surfaced — the charmer, the one who'd talked his way through checkpoints, if the stories Silas never told were anything to go by." | | 7 | "For the first time he looked straight at Silas, and Rory saw twenty years move between them without a word — the whole distance, Prague to Lisbon to this stool, the wives who left and the knees that failed and the one drink that was now a limit." | | 8 | "Silas laughed — a real one, startled out of him, and Tom's face cracked open in answer, and for a moment the two old men in the dim bar were just two young agents who'd once been the most dangerous thing in any room they entered, and knew it, and had never once needed to say so." | | 9 | "At the door he paused, hand on the brass handle, and looked back — not at Silas, but at the ring." | | 10 | "Rory counted the seconds — five, six, seven — before he turned back to the counter and picked up Tom's empty glass." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1057 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 27 | | adverbRatio | 0.02554399243140965 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.006622516556291391 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 112 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 112 | | mean | 13.26 | | std | 11.42 | | cv | 0.861 | | sampleLengths | | 0 | 21 | | 1 | 35 | | 2 | 13 | | 3 | 16 | | 4 | 4 | | 5 | 32 | | 6 | 31 | | 7 | 13 | | 8 | 19 | | 9 | 10 | | 10 | 29 | | 11 | 3 | | 12 | 8 | | 13 | 21 | | 14 | 4 | | 15 | 44 | | 16 | 7 | | 17 | 39 | | 18 | 15 | | 19 | 11 | | 20 | 4 | | 21 | 11 | | 22 | 3 | | 23 | 4 | | 24 | 3 | | 25 | 5 | | 26 | 18 | | 27 | 10 | | 28 | 7 | | 29 | 7 | | 30 | 9 | | 31 | 6 | | 32 | 11 | | 33 | 2 | | 34 | 10 | | 35 | 37 | | 36 | 7 | | 37 | 7 | | 38 | 5 | | 39 | 8 | | 40 | 5 | | 41 | 5 | | 42 | 28 | | 43 | 7 | | 44 | 20 | | 45 | 7 | | 46 | 18 | | 47 | 22 | | 48 | 7 | | 49 | 20 |
| |
| 47.32% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.32142857142857145 | | totalSentences | 112 | | uniqueOpeners | 36 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 75 | | matches | | 0 | "Then she caught Silas's eye." | | 1 | "Then it sank again beneath" | | 2 | "Then the moment passed, the" |
| | ratio | 0.04 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 75 | | matches | | 0 | "She pushed through the door" | | 1 | "he told her without looking" | | 2 | "She shook water off her" | | 3 | "He reached for the shelf" | | 4 | "His shoulders went still in" | | 5 | "He was somewhere north of" | | 6 | "It was a permanent thing," | | 7 | "His voice was level." | | 8 | "His gaze settled on the" | | 9 | "She'd never heard anyone talk" | | 10 | "He stopped a pace from" | | 11 | "He moved to the bar," | | 12 | "His hand, Rory saw, was" | | 13 | "She'd have bet money it" | | 14 | "She stood there with one" | | 15 | "He gave his head the" | | 16 | "She slid onto a stool" | | 17 | "He set it down with" | | 18 | "He collected his stick." | | 19 | "He pulled the door open." |
| | ratio | 0.28 | |
| 33.33% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 64 | | totalSentences | 75 | | matches | | 0 | "The rain had followed Rory" | | 1 | "The green neon buzzed overhead," | | 2 | "She pushed through the door" | | 3 | "Tuesday nights were dead." | | 4 | "Silas stood behind the counter" | | 5 | "he told her without looking" | | 6 | "She shook water off her" | | 7 | "He reached for the shelf" | | 8 | "The door opened." | | 9 | "Rory felt the change before" | | 10 | "The cold came in, yes," | | 11 | "The cloth stopped mid-circle." | | 12 | "His shoulders went still in" | | 13 | "The newcomer stood in the" | | 14 | "He was somewhere north of" | | 15 | "It was a permanent thing," | | 16 | "His voice was level." | | 17 | "Nothing in it." | | 18 | "The man looked around the" | | 19 | "His gaze settled on the" |
| | ratio | 0.853 | |
| 66.67% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 75 | | matches | | 0 | "By the time she wheeled" |
| | ratio | 0.013 | |
| 47.62% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 30 | | technicalSentenceCount | 4 | | matches | | 0 | "Silas stood behind the counter with a cloth in his hand, working a tumbler in slow circles, the silver ring on his right hand catching the lamplight each time i…" | | 1 | "His shoulders went still in a way she'd learned to read over two years of living above his bar — the stillness of a man who had heard a sound in the dark and wa…" | | 2 | "He was somewhere north of Silas's age but wore it worse — the rain had flattened thin grey hair against his skull, and his coat hung off him the way coats hang …" | | 3 | "Silas laughed — a real one, startled out of him, and Tom's face cracked open in answer, and for a moment the two old men in the dim bar were just two young agen…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 20 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 49 | | tagDensity | 0.184 | | leniency | 0.367 | | rawRatio | 0 | | effectiveRatio | 0 | |