| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 15 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 49 | | tagDensity | 0.306 | | leniency | 0.612 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 88.51% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1305 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "completely" | | 1 | "perfectly" | | 2 | "suddenly" |
| |
| 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) | |
| 42.53% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1305 | | totalAiIsms | 15 | | found | | | highlights | | 0 | "intensity" | | 1 | "predator" | | 2 | "rhythmic" | | 3 | "echoing" | | 4 | "electric" | | 5 | "reminder" | | 6 | "weight" | | 7 | "standard" | | 8 | "pulse" | | 9 | "racing" | | 10 | "firmly" | | 11 | "flickered" | | 12 | "could feel" | | 13 | "synchronized" | | 14 | "footsteps" |
| |
| 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 | 52 | | matches | | |
| 32.97% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 3 | | narrationSentences | 52 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 86 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 36 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1301 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 10 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 10 | | wordCount | 794 | | uniqueNames | 8 | | maxNameDensity | 0.38 | | worstName | "Lucien" | | maxWindowNameDensity | 1 | | worstWindowName | "Lucien" | | discoveredNames | | Moreau | 1 | | Ptolemy | 1 | | Brick | 1 | | Lane | 1 | | Cardiff | 1 | | French | 1 | | Heavy | 1 | | Lucien | 3 |
| | persons | | 0 | "Moreau" | | 1 | "Heavy" | | 2 | "Lucien" |
| | places | | 0 | "Brick" | | 1 | "Lane" | | 2 | "Cardiff" | | 3 | "French" |
| | globalScore | 1 | | windowScore | 1 | |
| 97.92% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 48 | | glossingSentenceCount | 1 | | matches | | 0 | "tasted like ash and promise" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1301 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 86 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 44 | | mean | 29.57 | | std | 21.3 | | cv | 0.721 | | sampleLengths | | 0 | 49 | | 1 | 42 | | 2 | 4 | | 3 | 17 | | 4 | 65 | | 5 | 31 | | 6 | 63 | | 7 | 2 | | 8 | 44 | | 9 | 39 | | 10 | 2 | | 11 | 8 | | 12 | 38 | | 13 | 43 | | 14 | 80 | | 15 | 12 | | 16 | 45 | | 17 | 7 | | 18 | 51 | | 19 | 2 | | 20 | 47 | | 21 | 13 | | 22 | 38 | | 23 | 3 | | 24 | 64 | | 25 | 11 | | 26 | 9 | | 27 | 13 | | 28 | 59 | | 29 | 5 | | 30 | 7 | | 31 | 45 | | 32 | 7 | | 33 | 50 | | 34 | 7 | | 35 | 8 | | 36 | 32 | | 37 | 26 | | 38 | 34 | | 39 | 28 | | 40 | 45 | | 41 | 12 | | 42 | 48 | | 43 | 46 |
| |
| 91.77% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 52 | | matches | | 0 | "been terrified" | | 1 | "was terrified" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 121 | | matches | | |
| 43.19% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 4 | | semicolonCount | 0 | | flaggedSentences | 3 | | totalSentences | 86 | | ratio | 0.035 | | matches | | 0 | "The memory hit me—the humid heat of the French coast, the taste of salt and fear, and the way he had looked at me while he held a blade to the throat of my past." | | 1 | "The scent of the city—damp brick, exhaust, and ancient magic—seemed to swirl around us." | | 2 | "The wooden frame of the door groaned as someone tested the strength of the lock—my secondary locks, the ones that usually made me feel safe, stood no chance against whatever was coming up those stairs." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 559 | | adjectiveStacks | 1 | | stackExamples | | 0 | "small crescent-shaped mark" |
| | adverbCount | 18 | | adverbRatio | 0.03220035778175313 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.014311270125223614 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 86 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 86 | | mean | 15.13 | | std | 8.73 | | cv | 0.577 | | sampleLengths | | 0 | 29 | | 1 | 20 | | 2 | 28 | | 3 | 14 | | 4 | 4 | | 5 | 17 | | 6 | 23 | | 7 | 17 | | 8 | 7 | | 9 | 18 | | 10 | 24 | | 11 | 7 | | 12 | 17 | | 13 | 27 | | 14 | 19 | | 15 | 2 | | 16 | 14 | | 17 | 6 | | 18 | 24 | | 19 | 20 | | 20 | 4 | | 21 | 15 | | 22 | 2 | | 23 | 8 | | 24 | 31 | | 25 | 7 | | 26 | 13 | | 27 | 11 | | 28 | 19 | | 29 | 35 | | 30 | 12 | | 31 | 6 | | 32 | 3 | | 33 | 24 | | 34 | 12 | | 35 | 27 | | 36 | 18 | | 37 | 7 | | 38 | 16 | | 39 | 12 | | 40 | 23 | | 41 | 2 | | 42 | 26 | | 43 | 21 | | 44 | 13 | | 45 | 11 | | 46 | 27 | | 47 | 3 | | 48 | 35 | | 49 | 14 |
| |
| 52.33% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.3488372093023256 | | totalSentences | 86 | | uniqueOpeners | 30 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 51 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 33 | | totalSentences | 51 | | matches | | 0 | "I stumbled back, my heart" | | 1 | "He stepped over the threshold," | | 2 | "I lied, my voice steady" | | 3 | "He circled the small, central" | | 4 | "He stopped near the window," | | 5 | "He reached into his coat" | | 6 | "He tapped it against his" | | 7 | "I stared at the envelope," | | 8 | "My father’s condescending tone." | | 9 | "I stepped toward him, closing" | | 10 | "He tilted his head, a" | | 11 | "He leaned in, his voice" | | 12 | "It hadn't been an act" | | 13 | "I had been terrified of" | | 14 | "I still was." | | 15 | "He tapped his cane again," | | 16 | "He reached out, his thumb" | | 17 | "His skin was unnaturally smooth," | | 18 | "He shifted his weight, his" | | 19 | "He chuckled, a low, dry" |
| | ratio | 0.647 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 47 | | totalSentences | 51 | | matches | | 0 | "The third deadbolt slid back" | | 1 | "I stumbled back, my heart" | | 2 | "Lucien Moreau stood in the" | | 3 | "The ivory-handled cane in his" | | 4 | "He stepped over the threshold," | | 5 | "Ptolemy the tabby cat hissed" | | 6 | "Lucien didn't even glance at" | | 7 | "I lied, my voice steady" | | 8 | "He circled the small, central" | | 9 | "He stopped near the window," | | 10 | "He reached into his coat" | | 11 | "He tapped it against his" | | 12 | "I stared at the envelope," | | 13 | "My father’s condescending tone." | | 14 | "The look of triumph on" | | 15 | "I stepped toward him, closing" | | 16 | "He tilted his head, a" | | 17 | "He leaned in, his voice" | | 18 | "The memory hit me—the humid" | | 19 | "It hadn't been an act" |
| | ratio | 0.922 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 51 | | matches | (empty) | | ratio | 0 | |
| 63.49% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 27 | | technicalSentenceCount | 3 | | matches | | 0 | "I stumbled back, my heart hammering against my ribs, hand flying instinctively to the small crescent-shaped mark on my wrist." | | 1 | "Lucien Moreau stood in the threshold, his charcoal-grey suit immaculate, his heterochromatic eyes locking onto mine with the intensity of a predator who had fin…" | | 2 | "My chest tightened, a strange, frantic hunger rising to meet the heat that poured off him." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 15 | | uselessAdditionCount | 7 | | matches | | 0 | "He stepped, his gaze sweeping over the cramped, disorganised flat" | | 1 | "He tapped, the sound echoing like a ticking clock" | | 2 | "He reached out, his thumb grazing my jawline, his touch cool and electric" | | 3 | "He shifted, his eyes darkening" | | 4 | "he whispered, his voice suddenly void of its playfulness" | | 5 | "he muttered, his free hand tightening around the head of his cane" | | 6 | "I whispered, the name dropping from my lips like a plea" |
| |
| 47.96% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 5 | | fancyTags | | 0 | "I lied (lie)" | | 1 | "He chuckled (chuckle)" | | 2 | "he whispered (whisper)" | | 3 | "he muttered (mutter)" | | 4 | "I whispered (whisper)" |
| | dialogueSentences | 49 | | tagDensity | 0.102 | | leniency | 0.204 | | rawRatio | 1 | | effectiveRatio | 0.204 | |