| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 26 | | adverbTagCount | 2 | | adverbTags | | 0 | "But Nadia was almost laughing [almost]" | | 1 | "Nadia said quietly [quietly]" |
| | dialogueSentences | 54 | | tagDensity | 0.481 | | leniency | 0.963 | | rawRatio | 0.077 | | effectiveRatio | 0.074 | |
| 87.04% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1543 | | totalAiIsmAdverbs | 4 | | 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) | |
| 87.04% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1543 | | totalAiIsms | 4 | | found | | | highlights | | 0 | "flicker" | | 1 | "weight" | | 2 | "footsteps" | | 3 | "flickered" |
| |
| 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 | 61 | | matches | (empty) | |
| 96.02% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 61 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 87 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 59 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1554 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 20 | | unquotedAttributions | 0 | | matches | (empty) | |
| 33.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 52 | | wordCount | 871 | | uniqueNames | 14 | | maxNameDensity | 1.95 | | worstName | "Nadia" | | maxWindowNameDensity | 4 | | worstWindowName | "Nadia" | | discoveredNames | | Rory | 16 | | Frith | 1 | | Street | 1 | | Raven | 1 | | Nest | 2 | | Silas | 7 | | Year | 1 | | Nine | 1 | | Nadia | 17 | | Crooked | 1 | | Evan | 1 | | Cathays | 1 | | Eva | 1 | | London | 1 |
| | persons | | 0 | "Rory" | | 1 | "Raven" | | 2 | "Nest" | | 3 | "Silas" | | 4 | "Nadia" | | 5 | "Evan" | | 6 | "Eva" |
| | places | | 0 | "Frith" | | 1 | "Street" | | 2 | "Year" | | 3 | "Cathays" | | 4 | "London" |
| | globalScore | 0.524 | | windowScore | 0.333 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 40 | | 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 | 1554 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 87 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 41 | | mean | 37.9 | | std | 31.59 | | cv | 0.833 | | sampleLengths | | 0 | 66 | | 1 | 83 | | 2 | 102 | | 3 | 9 | | 4 | 26 | | 5 | 24 | | 6 | 28 | | 7 | 42 | | 8 | 56 | | 9 | 18 | | 10 | 2 | | 11 | 32 | | 12 | 37 | | 13 | 45 | | 14 | 2 | | 15 | 32 | | 16 | 58 | | 17 | 11 | | 18 | 3 | | 19 | 2 | | 20 | 35 | | 21 | 7 | | 22 | 58 | | 23 | 129 | | 24 | 10 | | 25 | 64 | | 26 | 107 | | 27 | 82 | | 28 | 7 | | 29 | 7 | | 30 | 49 | | 31 | 80 | | 32 | 19 | | 33 | 34 | | 34 | 50 | | 35 | 6 | | 36 | 49 | | 37 | 6 | | 38 | 48 | | 39 | 7 | | 40 | 22 |
| |
| 88.01% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 61 | | matches | | 0 | "was cropped" | | 1 | "were written" | | 2 | "being worked" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 151 | | matches | | 0 | "was pulling" | | 1 | "was reading" | | 2 | "was staring" | | 3 | "was almost laughing" | | 4 | "was loosening" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 5 | | semicolonCount | 0 | | flaggedSentences | 5 | | totalSentences | 87 | | ratio | 0.057 | | matches | | 0 | "The green neon sign stuttered once as it caught the doorframe — Silas kept meaning to fix it, and never did, and she'd come to think of that flicker as a kind of welcome." | | 1 | "That was the thing she would think about later — that the recognition came in pieces, like a photograph developing." | | 2 | "\"Job interview, of all things. Tomorrow morning. I needed a drink before I could be sensible about it.\" Nadia looked at her glass — something amber, barely touched." | | 3 | "Outside, the rain thickened against the window, and the black-and-white photographs on the walls seemed to shift in the neon light — sailors, boxers, a city none of them had ever visited." | | 4 | "Nadia looked at her glass, then at the window, then at Rory, and the crooked smile came back — smaller, worn, but the same one." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 873 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 34 | | adverbRatio | 0.038946162657502864 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.010309278350515464 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 87 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 87 | | mean | 17.86 | | std | 14.46 | | cv | 0.81 | | sampleLengths | | 0 | 32 | | 1 | 34 | | 2 | 19 | | 3 | 27 | | 4 | 37 | | 5 | 7 | | 6 | 20 | | 7 | 29 | | 8 | 19 | | 9 | 11 | | 10 | 16 | | 11 | 9 | | 12 | 7 | | 13 | 13 | | 14 | 3 | | 15 | 3 | | 16 | 24 | | 17 | 20 | | 18 | 5 | | 19 | 3 | | 20 | 36 | | 21 | 6 | | 22 | 28 | | 23 | 28 | | 24 | 14 | | 25 | 4 | | 26 | 2 | | 27 | 27 | | 28 | 5 | | 29 | 5 | | 30 | 32 | | 31 | 7 | | 32 | 38 | | 33 | 2 | | 34 | 19 | | 35 | 13 | | 36 | 4 | | 37 | 19 | | 38 | 35 | | 39 | 4 | | 40 | 7 | | 41 | 3 | | 42 | 2 | | 43 | 19 | | 44 | 16 | | 45 | 2 | | 46 | 5 | | 47 | 5 | | 48 | 53 | | 49 | 12 |
| |
| 53.64% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.39080459770114945 | | totalSentences | 87 | | uniqueOpeners | 34 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 52 | | matches | | 0 | "Then the posture, very straight," | | 1 | "Somewhere in the back of" |
| | ratio | 0.038 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 10 | | totalSentences | 52 | | matches | | 0 | "He glanced up, gave her" | | 1 | "She heard how it sounded" | | 2 | "It came out blunter than" | | 3 | "She signalled to Silas for" | | 4 | "She looked at Rory properly" | | 5 | "She thought of Eva sitting" | | 6 | "She thought of the crescent" | | 7 | "She took a breath" | | 8 | "She stopped, surprised by what" | | 9 | "They sat with that." |
| | ratio | 0.192 | |
| 65.77% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 41 | | totalSentences | 52 | | matches | | 0 | "The rain had followed Rory" | | 1 | "The green neon sign stuttered" | | 2 | "The bar was nearly empty" | | 3 | "Silas was behind the taps," | | 4 | "He glanced up, gave her" | | 5 | "That was the thing she" | | 6 | "The hair first, because it" | | 7 | "The small bump on the" | | 8 | "Rory said, before she'd decided" | | 9 | "The woman turned all the" | | 10 | "Rory stopped, because the honest" | | 11 | "Nadia said, and smiled, and" | | 12 | "Rory crossed the room and" | | 13 | "Nadia looked at her glass" | | 14 | "Rory turned the water glass" | | 15 | "She heard how it sounded" | | 16 | "Nadia was quiet a moment." | | 17 | "Nadia said at last" | | 18 | "Nadia turned the glass between" | | 19 | "Rory looked at her." |
| | ratio | 0.788 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 52 | | matches | (empty) | | ratio | 0 | |
| 45.45% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 22 | | technicalSentenceCount | 3 | | matches | | 0 | "Silas was behind the taps, drying a glass with the unhurried competence of a man who had done a great many more dangerous things with his hands." | | 1 | "He glanced up, gave her the small nod that was his way of saying you're late, sit down, and she was pulling off her coat when she saw the woman at the far end o…" | | 2 | "She thought of the crescent scar on her wrist, which was childhood and innocent, and how she sometimes wished the whole history of her were written that legibly…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 26 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 12 | | fancyCount | 1 | | fancyTags | | 0 | "But Nadia was almost laughing (be laugh)" |
| | dialogueSentences | 54 | | tagDensity | 0.222 | | leniency | 0.444 | | rawRatio | 0.083 | | effectiveRatio | 0.037 | |