| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 23 | | adverbTagCount | 1 | | adverbTags | | 0 | "he said quietly [quietly]" |
| | dialogueSentences | 60 | | tagDensity | 0.383 | | leniency | 0.767 | | rawRatio | 0.043 | | effectiveRatio | 0.033 | |
| 88.70% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1328 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | |
| 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) | |
| 77.41% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1328 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "measured" | | 1 | "stomach" | | 2 | "flickered" | | 3 | "silence" | | 4 | "flicked" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "stomach dropped/sank" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 65 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 65 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 103 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 67 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1338 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 23 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 23 | | wordCount | 716 | | uniqueNames | 9 | | maxNameDensity | 0.7 | | worstName | "Ptolemy" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Lucien" | | discoveredNames | | Ptolemy | 5 | | Edinburgh | 1 | | Thursday | 1 | | Smooth | 1 | | Eva | 4 | | Moreau | 1 | | Rain | 1 | | Aurora | 4 | | Lucien | 5 |
| | persons | | 0 | "Ptolemy" | | 1 | "Smooth" | | 2 | "Eva" | | 3 | "Moreau" | | 4 | "Rain" | | 5 | "Aurora" | | 6 | "Lucien" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 43 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1338 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 103 | | matches | | 0 | "forgotten that — the" | | 1 | "hated that he" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 63 | | mean | 21.24 | | std | 21.38 | | cv | 1.007 | | sampleLengths | | 0 | 16 | | 1 | 32 | | 2 | 25 | | 3 | 12 | | 4 | 37 | | 5 | 46 | | 6 | 7 | | 7 | 20 | | 8 | 1 | | 9 | 19 | | 10 | 9 | | 11 | 44 | | 12 | 15 | | 13 | 4 | | 14 | 4 | | 15 | 4 | | 16 | 4 | | 17 | 51 | | 18 | 4 | | 19 | 7 | | 20 | 7 | | 21 | 28 | | 22 | 30 | | 23 | 6 | | 24 | 47 | | 25 | 14 | | 26 | 12 | | 27 | 30 | | 28 | 4 | | 29 | 8 | | 30 | 5 | | 31 | 19 | | 32 | 34 | | 33 | 48 | | 34 | 8 | | 35 | 1 | | 36 | 51 | | 37 | 33 | | 38 | 1 | | 39 | 31 | | 40 | 25 | | 41 | 7 | | 42 | 3 | | 43 | 24 | | 44 | 48 | | 45 | 7 | | 46 | 66 | | 47 | 8 | | 48 | 34 | | 49 | 66 |
| |
| 99.87% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 65 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 138 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 2 | | flaggedSentences | 10 | | totalSentences | 103 | | ratio | 0.097 | | matches | | 0 | "The knock came again — three measured raps, unhurried, the kind that assumed you'd answer eventually." | | 1 | "His mismatched eyes — amber and black — found hers through the gap and held." | | 2 | "He stepped past her into the flat and the whole cramped space seemed to shrink around him — the books, the scrolls, the secondhand coat rack." | | 3 | "\"Are a separate and worsening problem.\" He finally looked at her — properly looked, the way he used to, like she was a document written in a language only he bothered to learn." | | 4 | "Lucien exhaled through his nose — the closest he ever came to a laugh, or to losing patience; she'd never decided which." | | 5 | "She'd forgotten that — the way her saying his name did something to him, pulled him taut like wire." | | 6 | "Lucien's face did something she'd only seen once before — the night outside Silas' bar, when he'd found her sitting on the kerb with her split lip and her delivery bag and her whole life in pieces, and he'd said nothing at all, just taken off his coat and put it around her shoulders and sat down on the kerb beside her in his two-thousand-pound suit." | | 7 | "Slowly — he did everything slowly, she'd once told him he moved like a man being paid by the hour, and he'd smiled, actually smiled, and she'd spent a week trying to make it happen again." | | 8 | "\"Then here it is.\" The amber eye caught the lamplight; the black one caught nothing at all." | | 9 | "\"Tomorrow.\" She reached past him, flicked off the lamp by the window, plunging the flat into the amber wash of the streetlight outside — away from any watching eyes across the road." |
| |
| 99.34% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 687 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 28 | | adverbRatio | 0.040756914119359534 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.01455604075691412 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 103 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 103 | | mean | 12.99 | | std | 11.38 | | cv | 0.876 | | sampleLengths | | 0 | 16 | | 1 | 14 | | 2 | 6 | | 3 | 6 | | 4 | 6 | | 5 | 12 | | 6 | 5 | | 7 | 8 | | 8 | 12 | | 9 | 23 | | 10 | 1 | | 11 | 1 | | 12 | 1 | | 13 | 11 | | 14 | 31 | | 15 | 15 | | 16 | 7 | | 17 | 10 | | 18 | 6 | | 19 | 4 | | 20 | 1 | | 21 | 19 | | 22 | 9 | | 23 | 18 | | 24 | 6 | | 25 | 7 | | 26 | 13 | | 27 | 7 | | 28 | 8 | | 29 | 4 | | 30 | 4 | | 31 | 4 | | 32 | 4 | | 33 | 26 | | 34 | 25 | | 35 | 4 | | 36 | 7 | | 37 | 7 | | 38 | 23 | | 39 | 5 | | 40 | 23 | | 41 | 7 | | 42 | 6 | | 43 | 33 | | 44 | 14 | | 45 | 6 | | 46 | 8 | | 47 | 4 | | 48 | 8 | | 49 | 16 |
| |
| 64.72% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.4174757281553398 | | totalSentences | 103 | | uniqueOpeners | 43 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 56 | | matches | | 0 | "Somewhere below, the curry house's" | | 1 | "Slowly — he did everything" |
| | ratio | 0.036 | |
| 12.86% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 29 | | totalSentences | 56 | | matches | | 0 | "Her stomach dropped straight through" | | 1 | "She crossed the flat in" | | 2 | "She left the chain on" | | 3 | "His mismatched eyes — amber" | | 4 | "He didn't move to wipe" | | 5 | "His voice didn't change register" | | 6 | "He delivered it like a" | | 7 | "She slid the chain." | | 8 | "He stepped past her into" | | 9 | "He took it in with" | | 10 | "She shut the door and" | | 11 | "He set his cane against" | | 12 | "He finally looked at her" | | 13 | "She folded her arms" | | 14 | "She heard her own voice" | | 15 | "He went still." | | 16 | "She'd forgotten that — the" | | 17 | "It had been a weapon" | | 18 | "She'd used it without thinking," | | 19 | "he said quietly, He stopped" |
| | ratio | 0.518 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 52 | | totalSentences | 56 | | matches | | 0 | "The knock came again —" | | 1 | "Aurora froze over the kitchen" | | 2 | "Eva was in Edinburgh until" | | 3 | "Nobody else knew she was" | | 4 | "Nobody she wanted to see," | | 5 | "The voice came muffled through" | | 6 | "Her stomach dropped straight through" | | 7 | "She crossed the flat in" | | 8 | "She left the chain on" | | 9 | "Lucien Moreau stood on the" | | 10 | "His mismatched eyes — amber" | | 11 | "Rain slid down his collar" | | 12 | "He didn't move to wipe" | | 13 | "His voice didn't change register" | | 14 | "That was the worst of" | | 15 | "He delivered it like a" | | 16 | "Aurora stared at him through" | | 17 | "Ptolemy wound between her ankles," | | 18 | "She slid the chain." | | 19 | "He stepped past her into" |
| | ratio | 0.929 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 56 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 20 | | technicalSentenceCount | 1 | | matches | | 0 | "Close enough that she could smell rain on wool and something darker underneath, something that wasn't cologne and wasn't entirely human." |
| |
| 81.52% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 23 | | uselessAdditionCount | 2 | | matches | | 0 | "He set, as though to show her his hands were empty" | | 1 | "Her voice cracked on, hated that he heard it" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 60 | | tagDensity | 0.117 | | leniency | 0.233 | | rawRatio | 0.143 | | effectiveRatio | 0.033 | |