| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 27 | | adverbTagCount | 2 | | adverbTags | | 0 | "Cerys turned back [back]" | | 1 | "Cerys gestured vaguely [vaguely]" |
| | dialogueSentences | 77 | | tagDensity | 0.351 | | leniency | 0.701 | | rawRatio | 0.074 | | effectiveRatio | 0.052 | |
| 94.76% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1908 | | totalAiIsmAdverbs | 2 | | 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) | |
| 86.90% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1908 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "footsteps" | | 1 | "silk" | | 2 | "familiar" | | 3 | "silence" | | 4 | "whisper" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 1 | | found | | 0 | | label | "let out a breath" | | count | 1 |
| | 1 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | 0 | "let out a breath" | | 1 | "hung in the air" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 96 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 96 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 142 | | 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 | 1894 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 25 | | unquotedAttributions | 0 | | matches | (empty) | |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 78 | | wordCount | 1090 | | uniqueNames | 11 | | maxNameDensity | 2.75 | | worstName | "Rory" | | maxWindowNameDensity | 5 | | worstWindowName | "Rory" | | discoveredNames | | London | 3 | | Raven | 1 | | Nest | 1 | | Rory | 30 | | Vaughn | 1 | | Evan | 3 | | Cerys | 30 | | Paddington | 1 | | Prague | 1 | | Cardiff | 1 | | Silas | 6 |
| | persons | | 0 | "Raven" | | 1 | "Rory" | | 2 | "Evan" | | 3 | "Cerys" | | 4 | "Silas" |
| | places | | 0 | "London" | | 1 | "Vaughn" | | 2 | "Paddington" | | 3 | "Prague" | | 4 | "Cardiff" |
| | globalScore | 0.124 | | windowScore | 0 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 62 | | glossingSentenceCount | 1 | | matches | | 0 | "not quite disapproving, not quite concerned—and had left her alone since, busying himself with inventory behind the counter" | | 1 | "not quite concerned—and had left her alone since, busying himself with inventory behind the counter" |
| |
| 41.61% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 3 | | per1kWords | 1.584 | | wordCount | 1894 | | matches | | 0 | "not so long in the grand scheme of things, but it was long enough to become strangers wearing the faces of" | | 1 | "not forgiveness exactly, and not understanding, but an acknowledgement" | | 2 | "not understanding, but an acknowledgement" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 142 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 67 | | mean | 28.27 | | std | 23.64 | | cv | 0.836 | | sampleLengths | | 0 | 86 | | 1 | 48 | | 2 | 1 | | 3 | 96 | | 4 | 33 | | 5 | 6 | | 6 | 17 | | 7 | 48 | | 8 | 7 | | 9 | 23 | | 10 | 44 | | 11 | 6 | | 12 | 61 | | 13 | 19 | | 14 | 3 | | 15 | 27 | | 16 | 8 | | 17 | 13 | | 18 | 49 | | 19 | 15 | | 20 | 19 | | 21 | 6 | | 22 | 28 | | 23 | 82 | | 24 | 25 | | 25 | 17 | | 26 | 32 | | 27 | 18 | | 28 | 8 | | 29 | 63 | | 30 | 12 | | 31 | 79 | | 32 | 1 | | 33 | 36 | | 34 | 13 | | 35 | 67 | | 36 | 42 | | 37 | 8 | | 38 | 60 | | 39 | 33 | | 40 | 34 | | 41 | 12 | | 42 | 3 | | 43 | 24 | | 44 | 22 | | 45 | 6 | | 46 | 43 | | 47 | 32 | | 48 | 7 | | 49 | 1 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 96 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 195 | | matches | | |
| 2.01% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 142 | | ratio | 0.049 | | matches | | 0 | "Silas had given her a look when she'd walked in—not quite disapproving, not quite concerned—and had left her alone since, busying himself with inventory behind the counter." | | 1 | "She looked at Rory the way people look at old photographs—searching for something familiar beneath the alterations time had made." | | 2 | "There were fine lines at the corners of her mouth that hadn't been there before, and her eyes had that particular wariness Rory had learned to recognise in herself—the look of someone who had learned not to expect softness from the world." | | 3 | "She remembered the night she'd left—the tube to Paddington, the overnight coach to London because she couldn't afford the train, the way Evan's name had glowed on her phone screen until she'd turned it off and thrown it in her bag like it might bite her." | | 4 | "Cerys stared at her for a long moment, then laughed—a real laugh, the kind Rory remembered, unguarded and bright." | | 5 | "Rory thought about her flat upstairs, her plant, her delivery route, her life—small and quiet and hers." | | 6 | "Cerys nodded, and something passed between them—not forgiveness exactly, and not understanding, but an acknowledgement that the door was open, that it could be walked through if either of them chose to." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1100 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 31 | | adverbRatio | 0.028181818181818183 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.005454545454545455 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 142 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 142 | | mean | 13.34 | | std | 10.95 | | cv | 0.821 | | sampleLengths | | 0 | 31 | | 1 | 28 | | 2 | 27 | | 3 | 3 | | 4 | 4 | | 5 | 17 | | 6 | 24 | | 7 | 1 | | 8 | 3 | | 9 | 30 | | 10 | 28 | | 11 | 2 | | 12 | 33 | | 13 | 13 | | 14 | 20 | | 15 | 3 | | 16 | 3 | | 17 | 5 | | 18 | 10 | | 19 | 2 | | 20 | 11 | | 21 | 31 | | 22 | 6 | | 23 | 7 | | 24 | 5 | | 25 | 18 | | 26 | 15 | | 27 | 14 | | 28 | 15 | | 29 | 6 | | 30 | 2 | | 31 | 12 | | 32 | 5 | | 33 | 42 | | 34 | 12 | | 35 | 7 | | 36 | 3 | | 37 | 10 | | 38 | 17 | | 39 | 4 | | 40 | 4 | | 41 | 10 | | 42 | 3 | | 43 | 11 | | 44 | 13 | | 45 | 25 | | 46 | 15 | | 47 | 12 | | 48 | 7 | | 49 | 6 |
| |
| 35.92% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 20 | | diversityRatio | 0.2605633802816901 | | totalSentences | 142 | | uniqueOpeners | 37 | |
| 81.30% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 82 | | matches | | 0 | "Somewhere down the street, a" | | 1 | "Then she turned and walked" |
| | ratio | 0.024 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 18 | | totalSentences | 82 | | matches | | 0 | "She didn't look up." | | 1 | "She looked up." | | 2 | "Her hair was shorter than" | | 3 | "She looked at Rory the" | | 4 | "Her throat had gone tight" | | 5 | "She shook her head" | | 6 | "She blinked at it, then" | | 7 | "He set the glass down" | | 8 | "She remembered the night she'd" | | 9 | "She'd texted Cerys three times" | | 10 | "She laughed, a short bitter" | | 11 | "He didn't say anything." | | 12 | "He just placed them and" | | 13 | "She turned her glass in" | | 14 | "She thought about Cardiff, about" | | 15 | "He pointed at her glass" | | 16 | "She reached into her bag" | | 17 | "It was warm from Cerys's" |
| | ratio | 0.22 | |
| 2.68% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 75 | | totalSentences | 82 | | matches | | 0 | "The rain had been falling" | | 1 | "Rory sat at the far" | | 2 | "Silas had given her a" | | 3 | "The door opened." | | 4 | "She didn't look up." | | 5 | "The draft from the street" | | 6 | "Footsteps crossed the floor, paused," | | 7 | "She looked up." | | 8 | "The woman standing two stools" | | 9 | "Her hair was shorter than" | | 10 | "Cerys, who had sat beside" | | 11 | "Cerys's hand hovered at the" | | 12 | "She looked at Rory the" | | 13 | "Rory set down her glass." | | 14 | "Her throat had gone tight" | | 15 | "Cerys let out a breath" | | 16 | "She shook her head" | | 17 | "Cerys's voice dropped" | | 18 | "Rory's fingers found the crescent" | | 19 | "The scar was older than" |
| | ratio | 0.915 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 82 | | matches | (empty) | | ratio | 0 | |
| 43.65% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 36 | | technicalSentenceCount | 5 | | matches | | 0 | "The rain had been falling since noon, a steady London drizzle that slicked the pavement and turned the neon sign of the Raven's Nest into a green smear against …" | | 1 | "Cerys, who had sat beside her through torturous contract law lectures, who had held her hair back the night of the winter formal, who had been the first person …" | | 2 | "There were fine lines at the corners of her mouth that hadn't been there before, and her eyes had that particular wariness Rory had learned to recognise in hers…" | | 3 | "She'd texted Cerys three times that night, typing and deleting, trying to find words that could explain the shame of needing to be rescued." | | 4 | "Cerys smiled, and for a moment she looked exactly like the girl who had sat beside Rory in contract law, passing notes about the lecturer's unfortunate choice o…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 27 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 77 | | tagDensity | 0.104 | | leniency | 0.208 | | rawRatio | 0.125 | | effectiveRatio | 0.026 | |