| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 22 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said instead [instead]" |
| | dialogueSentences | 63 | | tagDensity | 0.349 | | leniency | 0.698 | | rawRatio | 0.045 | | effectiveRatio | 0.032 | |
| 83.98% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1561 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "very" | | 1 | "softly" | | 2 | "really" | | 3 | "suddenly" |
| |
| 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) | |
| 90.39% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1561 | | totalAiIsms | 3 | | found | | | highlights | | 0 | "could feel" | | 1 | "weight" | | 2 | "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 | 70 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 70 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 110 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 89 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 8 | | markdownWords | 30 | | totalWords | 1571 | | ratio | 0.019 | | matches | | 0 | "law is just storytelling for cowards, Rory" | | 1 | "bar" | | 2 | "absurd" | | 3 | "You knew." | | 4 | "you two, honestly, you're as bad as each other," | | 5 | "yeah, no, you're right," | | 6 | "winking" | | 7 | "we should do this properly" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 30 | | unquotedAttributions | 0 | | matches | (empty) | |
| 50.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 58 | | wordCount | 1128 | | uniqueNames | 18 | | maxNameDensity | 1.68 | | worstName | "Rory" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Cerys" | | discoveredNames | | Raven | 1 | | Nest | 1 | | October | 1 | | Tuesday-night | 1 | | Silas | 6 | | Morgan | 1 | | Cerys | 18 | | Cathays | 1 | | Roman | 1 | | Rory | 19 | | Cardiff | 1 | | London | 1 | | Thursday | 1 | | February | 1 | | Whitchurch | 1 | | Road | 1 | | Frith | 1 | | Street | 1 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Silas" | | 3 | "Morgan" | | 4 | "Cerys" | | 5 | "Roman" | | 6 | "Rory" |
| | places | | 0 | "Cardiff" | | 1 | "London" | | 2 | "February" | | 3 | "Whitchurch" | | 4 | "Road" | | 5 | "Frith" | | 6 | "Street" |
| | globalScore | 0.658 | | windowScore | 0.5 | |
| 25.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 40 | | glossingSentenceCount | 2 | | matches | | 0 | "smelled like five-spice and scorched ginge" | | 1 | "sounded like a cruise ship" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1571 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 110 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 62 | | mean | 25.34 | | std | 27.15 | | cv | 1.071 | | sampleLengths | | 0 | 83 | | 1 | 36 | | 2 | 80 | | 3 | 36 | | 4 | 14 | | 5 | 2 | | 6 | 21 | | 7 | 6 | | 8 | 21 | | 9 | 62 | | 10 | 1 | | 11 | 42 | | 12 | 3 | | 13 | 113 | | 14 | 23 | | 15 | 1 | | 16 | 51 | | 17 | 11 | | 18 | 3 | | 19 | 5 | | 20 | 81 | | 21 | 18 | | 22 | 11 | | 23 | 3 | | 24 | 30 | | 25 | 5 | | 26 | 10 | | 27 | 38 | | 28 | 21 | | 29 | 5 | | 30 | 32 | | 31 | 14 | | 32 | 9 | | 33 | 7 | | 34 | 13 | | 35 | 53 | | 36 | 1 | | 37 | 1 | | 38 | 5 | | 39 | 46 | | 40 | 11 | | 41 | 3 | | 42 | 18 | | 43 | 38 | | 44 | 3 | | 45 | 5 | | 46 | 7 | | 47 | 28 | | 48 | 113 | | 49 | 46 |
| |
| 90.23% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 70 | | matches | | 0 | "been designed" | | 1 | "been sanded" | | 2 | "was silenced" |
| |
| 91.89% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 185 | | matches | | 0 | "was doing" | | 1 | "was standing" | | 2 | "was laughing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 110 | | ratio | 0.055 | | matches | | 0 | "Rory could feel it through the nylon as she came up the steps from the street — the damp seeping cold against her hip while the foil trays inside kept their own stubborn heat, so that one side of her was freezing and the other side smelled like five-spice and scorched ginger." | | 1 | "She peeled off her jacket, which was suddenly twice its own weight, and hung it over the stool beside her, and it was in the middle of that small domestic act — one arm out, hair stuck to her cheek, the neon painting everything the green of a cheap aquarium — that a voice behind her said her name." | | 2 | "Cerys Morgan — Cerys who had shaved half her head in second year with a pair of kitchen scissors and cried about it for two days, Cerys who had smoked out of the window of the Cathays flat in a duvet like a Roman senator, saying *law is just storytelling for cowards, Rory* — was standing by the door in a navy coat with a collar you could cut bread on, holding a wheeled case, her hair a smooth expensive brown, her mouth painted the colour of a good conservative decision." | | 3 | "Cerys's expression did the thing that expressions do — the half-second of scramble, the little internal reshuffle, and then the smooth recovery, which was worse than the scramble." | | 4 | "That was the astonishing thing — she felt the words assemble and then she felt herself decline them, the way you'd decline a second drink, and she understood that this was what people meant when they said someone had changed." | | 5 | "She reached over and took Cerys's wrist, briefly, the way she used to, and Cerys's hand turned to meet hers as if no time had passed at all — as if there weren't seven years sitting between them on the bar like a third drink nobody had ordered." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1124 | | adjectiveStacks | 1 | | stackExamples | | 0 | "smooth expensive brown, her" |
| | adverbCount | 37 | | adverbRatio | 0.03291814946619217 | | lyAdverbCount | 16 | | lyAdverbRatio | 0.014234875444839857 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 110 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 110 | | mean | 14.28 | | std | 15.83 | | cv | 1.108 | | sampleLengths | | 0 | 9 | | 1 | 52 | | 2 | 3 | | 3 | 19 | | 4 | 20 | | 5 | 8 | | 6 | 8 | | 7 | 30 | | 8 | 13 | | 9 | 37 | | 10 | 10 | | 11 | 26 | | 12 | 12 | | 13 | 2 | | 14 | 2 | | 15 | 21 | | 16 | 6 | | 17 | 21 | | 18 | 3 | | 19 | 59 | | 20 | 1 | | 21 | 4 | | 22 | 10 | | 23 | 3 | | 24 | 25 | | 25 | 3 | | 26 | 5 | | 27 | 17 | | 28 | 91 | | 29 | 3 | | 30 | 20 | | 31 | 1 | | 32 | 38 | | 33 | 13 | | 34 | 8 | | 35 | 3 | | 36 | 3 | | 37 | 5 | | 38 | 31 | | 39 | 12 | | 40 | 3 | | 41 | 35 | | 42 | 14 | | 43 | 4 | | 44 | 6 | | 45 | 5 | | 46 | 3 | | 47 | 30 | | 48 | 5 | | 49 | 10 |
| |
| 62.73% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.4090909090909091 | | totalSentences | 110 | | uniqueOpeners | 45 | |
| 56.50% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 59 | | matches | | | ratio | 0.017 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 14 | | totalSentences | 59 | | matches | | 0 | "He set down the glass" | | 1 | "She peeled off her jacket," | | 2 | "Her mother, when there was" | | 3 | "She wouldn't have known her." | | 4 | "She laughed, and the laugh" | | 5 | "He poured it and withdrew" | | 6 | "She said it the way" | | 7 | "Her thumb moved on the" | | 8 | "*You knew.* Not the whole" | | 9 | "She didn't say any of" | | 10 | "she said instead" | | 11 | "They sat with it." | | 12 | "Her jacket dripped quietly onto" | | 13 | "She reached over and took" |
| | ratio | 0.237 | |
| 70.17% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 46 | | totalSentences | 59 | | matches | | 0 | "The rain had got into" | | 1 | "Rory could feel it through" | | 2 | "The green neon over the" | | 3 | "Silas kept saying he'd get" | | 4 | "Silas had been saying that" | | 5 | "The maps on the walls" | | 6 | "Silas stood under the shelf" | | 7 | "Rory said, hoisting the bag" | | 8 | "He set down the glass" | | 9 | "Silas said, in the mild" | | 10 | "She peeled off her jacket," | | 11 | "Nobody called her that." | | 12 | "Her mother, when there was" | | 13 | "A dentist's receptionist." | | 14 | "Rory turned around." | | 15 | "She wouldn't have known her." | | 16 | "That was the first thing," | | 17 | "Cerys Morgan — Cerys who" | | 18 | "She laughed, and the laugh" | | 19 | "Rory nodded at the ceiling" |
| | ratio | 0.78 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 59 | | matches | (empty) | | ratio | 0 | |
| 10.58% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 27 | | technicalSentenceCount | 5 | | matches | | 0 | "Silas stood under the shelf of good whisky with a cloth over his shoulder, polishing a glass he had almost certainly already polished, his silver signet ring cl…" | | 1 | "She peeled off her jacket, which was suddenly twice its own weight, and hung it over the stool beside her, and it was in the middle of that small domestic act —…" | | 2 | "Cerys Morgan — Cerys who had shaved half her head in second year with a pair of kitchen scissors and cried about it for two days, Cerys who had smoked out of th…" | | 3 | "The Cardiff had been sanded off them, filed down and lacquered, so that when she said *absurd* it came out with a hard little London edge, a word that had been …" | | 4 | "Cerys's expression did the thing that expressions do — the half-second of scramble, the little internal reshuffle, and then the smooth recovery, which was worse…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 22 | | uselessAdditionCount | 1 | | matches | | 0 | "She laughed, and the laugh was still hers, too loud for the room, and something in Rory's chest unclenched about half an inch" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 18 | | fancyCount | 2 | | fancyTags | | 0 | "She laughed (laugh)" | | 1 | "Cerys laughed (laugh)" |
| | dialogueSentences | 63 | | tagDensity | 0.286 | | leniency | 0.571 | | rawRatio | 0.111 | | effectiveRatio | 0.063 | |