| 42.11% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 19 | | adverbTagCount | 3 | | adverbTags | | 0 | "He turned slowly [slowly]" | | 1 | "Rory said tightly [tightly]" | | 2 | "she said flatly [flatly]" |
| | dialogueSentences | 36 | | tagDensity | 0.528 | | leniency | 1 | | rawRatio | 0.158 | | effectiveRatio | 0.158 | |
| 84.98% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1664 | | totalAiIsmAdverbs | 5 | | found | | 0 | | | 1 | | | 2 | | | 3 | | adverb | "deliberately" | | count | 1 |
|
| | highlights | | 0 | "warmly" | | 1 | "slowly" | | 2 | "tightly" | | 3 | "deliberately" |
| |
| 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) | |
| 66.95% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1664 | | totalAiIsms | 11 | | found | | | highlights | | 0 | "velvet" | | 1 | "silence" | | 2 | "sentinel" | | 3 | "gleaming" | | 4 | "vibrated" | | 5 | "flicked" | | 6 | "weight" | | 7 | "stomach" | | 8 | "pulse" | | 9 | "could feel" |
| |
| 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 | 122 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 122 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 139 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 56 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 9 | | markdownWords | 15 | | totalWords | 1645 | | ratio | 0.009 | | matches | | 0 | "no entry for Frenchmen in tailored suits" | | 1 | "and" | | 2 | "Emptied." | | 3 | "you" | | 4 | "Evan." | | 5 | "his" | | 6 | "wanted" | | 7 | "he" | | 8 | "you" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 19 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 71 | | wordCount | 1255 | | uniqueNames | 25 | | maxNameDensity | 1.2 | | worstName | "Rory" | | maxWindowNameDensity | 3 | | worstWindowName | "Rory" | | discoveredNames | | Eva | 8 | | Moreau | 2 | | Marseille | 1 | | London | 2 | | Camden | 1 | | Shoreditch | 1 | | Silence | 1 | | Latin | 1 | | Rory | 15 | | Frenchmen | 1 | | Welsh | 1 | | Ptolemy | 7 | | Lucien | 12 | | Mercury | 1 | | Pisces | 1 | | Underground | 1 | | Chancery | 1 | | Lane | 1 | | Frenchman | 1 | | Slowly | 1 | | Evan | 2 | | Covent | 1 | | Garden | 1 | | Three | 4 | | Click | 3 |
| | persons | | 0 | "Eva" | | 1 | "Moreau" | | 2 | "Silence" | | 3 | "Rory" | | 4 | "Ptolemy" | | 5 | "Lucien" | | 6 | "Frenchman" | | 7 | "Evan" |
| | places | | 0 | "Marseille" | | 1 | "London" | | 2 | "Camden" | | 3 | "Shoreditch" | | 4 | "Chancery" | | 5 | "Lane" | | 6 | "Covent" | | 7 | "Garden" |
| | globalScore | 0.902 | | windowScore | 0.667 | |
| 84.21% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 76 | | glossingSentenceCount | 2 | | matches | | 0 | "smelled like yesterday’s curry and Eva’s f" | | 1 | "as if expelling the ghosts of the last three months" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1645 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 139 | | matches | | 0 | "remembered that detail" | | 1 | "chose that moment" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 57 | | mean | 28.86 | | std | 18.74 | | cv | 0.649 | | sampleLengths | | 0 | 6 | | 1 | 53 | | 2 | 5 | | 3 | 8 | | 4 | 9 | | 5 | 43 | | 6 | 72 | | 7 | 19 | | 8 | 12 | | 9 | 28 | | 10 | 77 | | 11 | 14 | | 12 | 4 | | 13 | 42 | | 14 | 6 | | 15 | 4 | | 16 | 64 | | 17 | 4 | | 18 | 45 | | 19 | 41 | | 20 | 31 | | 21 | 59 | | 22 | 6 | | 23 | 24 | | 24 | 28 | | 25 | 62 | | 26 | 18 | | 27 | 28 | | 28 | 54 | | 29 | 54 | | 30 | 29 | | 31 | 15 | | 32 | 27 | | 33 | 40 | | 34 | 42 | | 35 | 8 | | 36 | 42 | | 37 | 38 | | 38 | 22 | | 39 | 46 | | 40 | 25 | | 41 | 15 | | 42 | 25 | | 43 | 15 | | 44 | 40 | | 45 | 31 | | 46 | 13 | | 47 | 49 | | 48 | 42 | | 49 | 15 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 122 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 204 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 18 | | semicolonCount | 0 | | flaggedSentences | 16 | | totalSentences | 139 | | ratio | 0.115 | | matches | | 0 | "That sounddidn't belong—not with Eva still at the university, the evening light already bleeding yellow through the grimy windows above the curry house, the flat stinking of fried onions and older, mustier things that lived in the walls." | | 1 | "The voice came from the other side of the door—velvet wrapped around a blade edge, smooth as it was sharp." | | 2 | "Every surface in this flat was a graveyard for research—Eva's obsession with the occult bleeding from every inch of available space." | | 3 | "Message delivered—*no entry for Frenchmen in tailored suits*, at least not without a toll." | | 4 | "Rory yanked the nearest book off the shelf—a history of Welsh witch trials—and hurled it at the cat instead." | | 5 | "His gaze swept the flat—the thousand half-burnt candles shoved into wine bottles, the runes scribbled on the fridge in chalk that never washed off, Ptolemy perched now on the back of the sofa like a judge presiding over a guilty verdict." | | 6 | "The flat's heat pressed in—summer trapped behind the thick brick walls, onions frying below, some other tenant’s incense curling through the vents like a bad memory." | | 7 | "She could smell Lucien too—cedar and iron, the cloying sweetness of night-blooming jasmine in a graveyard." | | 8 | "When she turned, he was already three steps in, brushing past the wall lined with Eva’s hand-drawn star maps—Mercury in retrograde, Pisces conjunct the moon’s ascendant." | | 9 | "The flat smelled like yesterday’s curry and Eva’s failed spells—chalk, burnt sugar, the faint metallic tang of old blood trapped in the floorboards." | | 10 | "Eva didn’t just collect knowledge—she bottled it." | | 11 | "The idea of Eva’s data—centuries of occult fragments, half-translated grimoires, names that could summon entire dynasties—vanishing into digital static made Rory’s stomach coil." | | 12 | "Lucien’s cane tapped the floor—once, twice." | | 13 | "*Evan.* Not her ex’s name—*his* name." | | 14 | "\"If you had what, Rory?\" He stepped closer, the scent of him overwhelming—cedar and burnt offerings and the faint copper tang of old wounds." | | 15 | "Rory met Lucien’s gaze—the amber and the black." |
| |
| 98.06% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1279 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 54 | | adverbRatio | 0.04222048475371384 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.008600469116497263 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 139 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 139 | | mean | 11.83 | | std | 9.44 | | cv | 0.798 | | sampleLengths | | 0 | 3 | | 1 | 1 | | 2 | 1 | | 3 | 1 | | 4 | 15 | | 5 | 38 | | 6 | 2 | | 7 | 1 | | 8 | 1 | | 9 | 1 | | 10 | 8 | | 11 | 9 | | 12 | 20 | | 13 | 11 | | 14 | 12 | | 15 | 6 | | 16 | 8 | | 17 | 2 | | 18 | 56 | | 19 | 10 | | 20 | 9 | | 21 | 12 | | 22 | 3 | | 23 | 25 | | 24 | 15 | | 25 | 21 | | 26 | 15 | | 27 | 9 | | 28 | 17 | | 29 | 14 | | 30 | 4 | | 31 | 19 | | 32 | 4 | | 33 | 19 | | 34 | 6 | | 35 | 4 | | 36 | 38 | | 37 | 26 | | 38 | 4 | | 39 | 20 | | 40 | 25 | | 41 | 41 | | 42 | 9 | | 43 | 22 | | 44 | 4 | | 45 | 26 | | 46 | 16 | | 47 | 8 | | 48 | 2 | | 49 | 3 |
| |
| 56.59% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.37410071942446044 | | totalSentences | 139 | | uniqueOpeners | 52 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 102 | | matches | | 0 | "Then the slow drag of" | | 1 | "Dark, straight, the only part" | | 2 | "Somewhere in the building, a" | | 3 | "Then she tossed the towel" |
| | ratio | 0.039 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 30 | | totalSentences | 102 | | matches | | 0 | "Her breath stopped somewhere around" | | 1 | "He'd learned to speak the" | | 2 | "She grabbed the kettle and" | | 3 | "she said, wiping her palms" | | 4 | "He uncurled, stretched like a" | | 5 | "It smacked his flank." | | 6 | "She wrenched the last deadbolt" | | 7 | "His ivory-handled cane caught the" | | 8 | "His gaze swept the flat—the" | | 9 | "She could smell Lucien too—cedar" | | 10 | "He stepped inside without waiting" | | 11 | "She shut the door, slammed" | | 12 | "His fingers paused over a" | | 13 | "She exhaled through her nose." | | 14 | "She moved to stand behind" | | 15 | "His cane could probably detach" | | 16 | "He turned slowly, cane resting" | | 17 | "She didn’t flinch." | | 18 | "She adjusted Ptolemy’s weight" | | 19 | "His voice dropped" |
| | ratio | 0.294 | |
| 28.63% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 88 | | totalSentences | 102 | | matches | | 0 | "The deadbolt clicked." | | 1 | "Rory's hand hovered over the" | | 2 | "That sounddidn't belong—not with Eva" | | 3 | "Her breath stopped somewhere around" | | 4 | "The voice came from the" | | 5 | "Lucien Moreau's accent, all honeyed" | | 6 | "He'd learned to speak the" | | 7 | "Rory's fingers twitched against the" | | 8 | "The kettle's tremble turned to" | | 9 | "She grabbed the kettle and" | | 10 | "Water sloshed over the edge," | | 11 | "she said, wiping her palms" | | 12 | "Silence answered first." | | 13 | "Ptolemy, the tabby sentinel, lifted" | | 14 | "Every surface in this flat" | | 15 | "The cat's one yellow eye" | | 16 | "He uncurled, stretched like a" | | 17 | "The door handle jiggled." | | 18 | "Rory yanked the nearest book" | | 19 | "It smacked his flank." |
| | ratio | 0.863 | |
| 49.02% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 102 | | matches | | 0 | "As if they’d been discussing" |
| | ratio | 0.01 | |
| 36.47% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 47 | | technicalSentenceCount | 7 | | matches | | 0 | "That sounddidn't belong—not with Eva still at the university, the evening light already bleeding yellow through the grimy windows above the curry house, the fla…" | | 1 | "Then the slow drag of a shoe across the doormat, a deliberate exhale that didn't belong to Eva or any of the flat's usual squatters." | | 2 | "Lucien Moreau filled the threshold like a mirage in a charcoal three-piece suit, his platinum hair slicked back, one amber eye gleaming under the flat’s dim bul…" | | 3 | "Lucien chuckled, low and rough, a sound that used to make her skin prickle in all the right places." | | 4 | "The idea of Eva’s data—centuries of occult fragments, half-translated grimoires, names that could summon entire dynasties—vanishing into digital static made Ror…" | | 5 | "The cat yowled and scrambled off her shoulder, landing with a thud on the floor and disappearing under the sofa." | | 6 | "She exhaled, slow and deliberate, as if expelling the ghosts of the last three months." |
| |
| 98.68% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 19 | | uselessAdditionCount | 1 | | matches | | |
| 94.44% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 11 | | fancyCount | 2 | | fancyTags | | 0 | "he observed (observe)" | | 1 | "he murmured (murmur)" |
| | dialogueSentences | 36 | | tagDensity | 0.306 | | leniency | 0.611 | | rawRatio | 0.182 | | effectiveRatio | 0.111 | |