| 42.11% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 19 | | adverbTagCount | 3 | | adverbTags | | 0 | "Marsh smiled faintly [faintly]" | | 1 | "Marsh's voice cracked just [just]" | | 2 | "He drank hard [hard]" |
| | dialogueSentences | 34 | | tagDensity | 0.559 | | leniency | 1 | | rawRatio | 0.158 | | effectiveRatio | 0.158 | |
| 87.61% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1211 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "slightly" | | 1 | "sharply" | | 2 | "slowly" |
| |
| 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) | |
| 79.36% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1211 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "flickered" | | 1 | "grave" | | 2 | "weight" | | 3 | "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 | 61 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 61 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 76 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 54 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1202 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 11 | | unquotedAttributions | 0 | | matches | (empty) | |
| 42.09% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 39 | | wordCount | 834 | | uniqueNames | 10 | | maxNameDensity | 2.16 | | worstName | "Silas" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Silas" | | discoveredNames | | Silas | 18 | | Nest | 1 | | November | 1 | | Daniel | 1 | | Marsh | 13 | | Lagavulin | 1 | | Prague | 1 | | Christian | 1 | | Quieter | 1 | | Soho | 1 |
| | persons | | | places | | 0 | "Daniel" | | 1 | "Prague" | | 2 | "Soho" |
| | globalScore | 0.421 | | windowScore | 0.5 | |
| 90.48% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 42 | | glossingSentenceCount | 1 | | matches | | 0 | "as if deciding whether to let the dark have it" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1202 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 76 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 32 | | mean | 37.56 | | std | 27.36 | | cv | 0.728 | | sampleLengths | | 0 | 75 | | 1 | 28 | | 2 | 80 | | 3 | 3 | | 4 | 36 | | 5 | 49 | | 6 | 40 | | 7 | 50 | | 8 | 8 | | 9 | 21 | | 10 | 32 | | 11 | 5 | | 12 | 2 | | 13 | 51 | | 14 | 25 | | 15 | 63 | | 16 | 48 | | 17 | 18 | | 18 | 20 | | 19 | 6 | | 20 | 42 | | 21 | 14 | | 22 | 57 | | 23 | 78 | | 24 | 92 | | 25 | 101 | | 26 | 7 | | 27 | 12 | | 28 | 19 | | 29 | 54 | | 30 | 10 | | 31 | 56 |
| |
| 99.51% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 61 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 148 | | matches | | 0 | "was wiping" | | 1 | "was speaking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 0 | | flaggedSentences | 5 | | totalSentences | 76 | | ratio | 0.066 | | matches | | 0 | "But then he turned his head to survey the room—that quick, lateral scan, taking in exits and sightlines without seeming to—and the years fell away like silt off a stone." | | 1 | "\"Good God. They told me you'd opened a place. I didn't believe it.\" He came forward, and there was a hitch in his own stride now, Silas noticed—age, or something worse." | | 2 | "He set his hat on the bar—an actual hat, felt, with a brim—and Silas poured two measures and slid one across without asking." | | 3 | "Silas looked at his old friend—at the expensive coat that was a kind of armor, the ring that announced a station, the white hair, the careful body—and understood, finally, what had changed in him." | | 4 | "\"You should have.\" Then, after a long moment, he reached across the scarred wood and put his hand—the heavy ring, the loose old skin—over Silas's wrist." |
| |
| 91.51% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 845 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 42 | | adverbRatio | 0.04970414201183432 | | lyAdverbCount | 13 | | lyAdverbRatio | 0.015384615384615385 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 76 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 76 | | mean | 15.82 | | std | 11.44 | | cv | 0.723 | | sampleLengths | | 0 | 19 | | 1 | 23 | | 2 | 33 | | 3 | 28 | | 4 | 7 | | 5 | 43 | | 6 | 30 | | 7 | 3 | | 8 | 3 | | 9 | 22 | | 10 | 11 | | 11 | 31 | | 12 | 18 | | 13 | 23 | | 14 | 17 | | 15 | 7 | | 16 | 20 | | 17 | 23 | | 18 | 8 | | 19 | 13 | | 20 | 8 | | 21 | 26 | | 22 | 3 | | 23 | 3 | | 24 | 5 | | 25 | 2 | | 26 | 11 | | 27 | 11 | | 28 | 20 | | 29 | 9 | | 30 | 22 | | 31 | 3 | | 32 | 17 | | 33 | 6 | | 34 | 3 | | 35 | 27 | | 36 | 10 | | 37 | 20 | | 38 | 23 | | 39 | 5 | | 40 | 15 | | 41 | 3 | | 42 | 20 | | 43 | 6 | | 44 | 5 | | 45 | 37 | | 46 | 3 | | 47 | 3 | | 48 | 8 | | 49 | 5 |
| |
| 65.79% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.4342105263157895 | | totalSentences | 76 | | uniqueOpeners | 33 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 53 | | matches | | 0 | "Instead he watched it stutter" | | 1 | "Then he smiled, and the" | | 2 | "Then he seemed to decide" | | 3 | "Then, after a long moment," | | 4 | "Then it flickered out, and" |
| | ratio | 0.094 | |
| 69.06% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 20 | | totalSentences | 53 | | matches | | 0 | "It was the slow hour," | | 1 | "He was wiping down the" | | 2 | "His eyes found Silas behind" | | 3 | "He came forward, and there" | | 4 | "He lowered himself onto a" | | 5 | "He set his hat on" | | 6 | "It was an old toast" | | 7 | "He drank anyway." | | 8 | "He sat back." | | 9 | "He gestured at the walls," | | 10 | "His knee was speaking to" | | 11 | "He tried again." | | 12 | "He had rehearsed this conversation," | | 13 | "He drank, hard, and set" | | 14 | "It wasn't the weight or" | | 15 | "It was that Marsh had" | | 16 | "They had walked in opposite" | | 17 | "It was not absolution." | | 18 | "It was the only true" | | 19 | "His hand, he noticed, was" |
| | ratio | 0.377 | |
| 44.91% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 44 | | totalSentences | 53 | | matches | | 0 | "The green neon over the" | | 1 | "It was the slow hour," | | 2 | "He was wiping down the" | | 3 | "The man who came in" | | 4 | "Daniel Marsh stopped." | | 5 | "His eyes found Silas behind" | | 6 | "He came forward, and there" | | 7 | "Silas reached for the good" | | 8 | "Marsh laughed, but it cost" | | 9 | "He lowered himself onto a" | | 10 | "He set his hat on" | | 11 | "Marsh said, looking at the" | | 12 | "Silas raised his own" | | 13 | "It was an old toast" | | 14 | "Marsh's smile thinned." | | 15 | "He drank anyway." | | 16 | "Marsh turned the glass in" | | 17 | "The light caught a heavy" | | 18 | "The Marsh of nineteen years" | | 19 | "Silas felt the old wariness" |
| | ratio | 0.83 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 53 | | matches | (empty) | | ratio | 0 | |
| 53.57% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 24 | | technicalSentenceCount | 3 | | matches | | 0 | "The man who came in stamping water off good shoes was heavier through the middle, his hair gone entirely white and cropped close to the skull, and he wore the k…" | | 1 | "Silas looked at his old friend—at the expensive coat that was a kind of armor, the ring that announced a station, the white hair, the careful body—and understoo…" | | 2 | "Outside, the neon held its green a moment longer than it had all week, as if deciding whether to let the dark have it." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 19 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 1 | | fancyTags | | 0 | "He came forward (come forward)" |
| | dialogueSentences | 34 | | tagDensity | 0.206 | | leniency | 0.412 | | rawRatio | 0.143 | | effectiveRatio | 0.059 | |