| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 18 | | adverbTagCount | 1 | | adverbTags | | 0 | "His jaw worked once [once]" |
| | dialogueSentences | 51 | | tagDensity | 0.353 | | leniency | 0.706 | | rawRatio | 0.056 | | effectiveRatio | 0.039 | |
| 68.92% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1609 | | totalAiIsmAdverbs | 10 | | found | | | highlights | | 0 | "lightly" | | 1 | "very" | | 2 | "quickly" | | 3 | "coldly" | | 4 | "slowly" | | 5 | "slightly" |
| |
| 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) | |
| 93.78% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1609 | | totalAiIsms | 2 | | found | | | highlights | | |
| 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 | 75 | | matches | (empty) | |
| 85.71% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 75 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 105 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 80 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1626 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 24 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 15 | | wordCount | 1084 | | uniqueNames | 10 | | maxNameDensity | 0.37 | | worstName | "Lucien" | | maxWindowNameDensity | 1 | | worstWindowName | "Lucien" | | discoveredNames | | Lucien | 4 | | Moreau | 1 | | Silas | 2 | | Golden | 1 | | Empress | 1 | | Nerval | 2 | | Commercial | 1 | | Street | 1 | | Marseille | 1 | | Breathed | 1 |
| | persons | | 0 | "Lucien" | | 1 | "Moreau" | | 2 | "Silas" |
| | places | | 0 | "Commercial" | | 1 | "Street" | | 2 | "Marseille" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 52 | | 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 | 1626 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 105 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 51 | | mean | 31.88 | | std | 28 | | cv | 0.878 | | sampleLengths | | 0 | 8 | | 1 | 42 | | 2 | 70 | | 3 | 26 | | 4 | 1 | | 5 | 45 | | 6 | 14 | | 7 | 48 | | 8 | 6 | | 9 | 84 | | 10 | 18 | | 11 | 3 | | 12 | 48 | | 13 | 96 | | 14 | 2 | | 15 | 45 | | 16 | 6 | | 17 | 32 | | 18 | 37 | | 19 | 1 | | 20 | 10 | | 21 | 1 | | 22 | 3 | | 23 | 43 | | 24 | 4 | | 25 | 67 | | 26 | 24 | | 27 | 10 | | 28 | 10 | | 29 | 69 | | 30 | 19 | | 31 | 1 | | 32 | 109 | | 33 | 4 | | 34 | 58 | | 35 | 14 | | 36 | 57 | | 37 | 62 | | 38 | 64 | | 39 | 9 | | 40 | 12 | | 41 | 69 | | 42 | 60 | | 43 | 30 | | 44 | 11 | | 45 | 39 | | 46 | 6 | | 47 | 4 | | 48 | 68 | | 49 | 34 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 75 | | matches | | |
| 86.36% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 176 | | matches | | 0 | "was thumping" | | 1 | "was hiding" | | 2 | "was shivering" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 2 | | flaggedSentences | 11 | | totalSentences | 105 | | ratio | 0.105 | | matches | | 0 | "Instead there was the landing bulb, the stairwell smell of lager and lemon disinfectant, and him — five months of silence standing on her mat in a ruined suit." | | 1 | "Her body — traitorous, stupid body — did the thing it had learned in his orbit: pulse first, think later." | | 2 | "He came in dripping, and she watched him do the thing he couldn't help doing — the slow catalogue of her flat, reading it like an invoice." | | 3 | "She gripped the counter's edge and did the arithmetic the way she did all arithmetic — coldly, out loud, one column at a time." | | 4 | "Five months of him quietly buying up every trace of her that the underworld had for sale, and five months of him saying nothing, being nothing, sending nothing — nothing but one message relayed through Silas in a voice that wasn't even his own." | | 5 | "He crossed the room slowly, the way he'd once crossed a warehouse full of very dangerous people, and stopped close enough that she could smell bergamam under the wet wool, close enough that she had to tip her chin to keep both his eyes in view — the amber, the black, the whole mismatched coin of him." | | 6 | "\"I have known since I was old enough to understand what I'm half of. Everything I touch gets invoiced eventually. Everything I love gets priced.\" His hand rose — hovered — and she watched him make himself ask, silent, the question in the half-inch of air between his fingers and her jaw." | | 7 | "\"Okay.\" Her thumb was on the scar again; she made herself stop." | | 8 | "For a moment she thought he'd argue — he was a fixer; fixing was the whole architecture of him." | | 9 | "She turned the lock on the door — one turn, out of habit, out of a decade of women with three deadbolts and good reasons — and set the chain, and when she looked back at him, this man who arrived everywhere like the weather was a rumor, he was soaked through on her sofa with Nerval at his elbow and her cold tea in his hands, staying." | | 10 | "She'd deal with him the way she dealt with everything — awake, in daylight, on her own terms." |
| |
| 99.97% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1074 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 43 | | adverbRatio | 0.04003724394785847 | | lyAdverbCount | 13 | | lyAdverbRatio | 0.012104283054003724 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 105 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 105 | | mean | 15.49 | | std | 15.69 | | cv | 1.013 | | sampleLengths | | 0 | 8 | | 1 | 13 | | 2 | 29 | | 3 | 4 | | 4 | 20 | | 5 | 20 | | 6 | 4 | | 7 | 22 | | 8 | 7 | | 9 | 19 | | 10 | 1 | | 11 | 10 | | 12 | 20 | | 13 | 5 | | 14 | 10 | | 15 | 8 | | 16 | 1 | | 17 | 5 | | 18 | 4 | | 19 | 19 | | 20 | 25 | | 21 | 6 | | 22 | 27 | | 23 | 6 | | 24 | 17 | | 25 | 34 | | 26 | 5 | | 27 | 13 | | 28 | 3 | | 29 | 34 | | 30 | 3 | | 31 | 4 | | 32 | 3 | | 33 | 4 | | 34 | 16 | | 35 | 8 | | 36 | 32 | | 37 | 37 | | 38 | 3 | | 39 | 2 | | 40 | 38 | | 41 | 7 | | 42 | 3 | | 43 | 3 | | 44 | 20 | | 45 | 12 | | 46 | 6 | | 47 | 24 | | 48 | 7 | | 49 | 1 |
| |
| 61.27% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.41904761904761906 | | totalSentences | 105 | | uniqueOpeners | 44 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 66 | | matches | | 0 | "Instead there was the landing" | | 1 | "Then something in his shoulders" |
| | ratio | 0.03 | |
| 7.88% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 35 | | totalSentences | 66 | | matches | | 0 | "She'd been expecting Silas, come" | | 1 | "He was never wet." | | 2 | "His tie hung loose." | | 3 | "Her hand had stopped on" | | 4 | "Her body — traitorous, stupid" | | 5 | "She made herself think anyway." | | 6 | "she said, and began to" | | 7 | "He came in dripping, and" | | 8 | "His gaze snagged on it." | | 9 | "She saw the snag happen," | | 10 | "She crossed to the kettle" | | 11 | "She filled it." | | 12 | "She plugged it in." | | 13 | "He set the cane against" | | 14 | "She knew what lived inside" | | 15 | "She'd watched the blade come" | | 16 | "He moved to the window," | | 17 | "She almost laughed." | | 18 | "He said it flatly, but" | | 19 | "She gripped the counter's edge" |
| | ratio | 0.53 | |
| 43.33% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 55 | | totalSentences | 66 | | matches | | 0 | "The door opened onto rain" | | 1 | "She'd been expecting Silas, come" | | 2 | "He was never wet." | | 3 | "Tonight the rain had got" | | 4 | "His tie hung loose." | | 5 | "The charcoal wool of his" | | 6 | "The other, the black one," | | 7 | "Her hand had stopped on" | | 8 | "Her body — traitorous, stupid" | | 9 | "She made herself think anyway." | | 10 | "she said, and began to" | | 11 | "The ferrule of his cane" | | 12 | "A request, not a bar." | | 13 | "Duw, she thought, and stood" | | 14 | "He came in dripping, and" | | 15 | "The radiator ticking under the" | | 16 | "The Golden Empress thermal bag" | | 17 | "The shelf of charity-shop paperbacks," | | 18 | "His gaze snagged on it." | | 19 | "She saw the snag happen," |
| | ratio | 0.833 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 66 | | matches | (empty) | | ratio | 0 | |
| 63.49% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 27 | | technicalSentenceCount | 3 | | matches | | 0 | "Five months of him quietly buying up every trace of her that the underworld had for sale, and five months of him saying nothing, being nothing, sending nothing …" | | 1 | "The kiss was rain and bergamot and five months of unsaid, and he kissed her like a man who had rehearsed not doing it for a very long time and had finally, grat…" | | 2 | "She turned the lock on the door — one turn, out of habit, out of a decade of women with three deadbolts and good reasons — and set the chain, and when she looke…" |
| |
| 97.22% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 18 | | uselessAdditionCount | 1 | | matches | | 0 | "He said, but the Marseille came up in it, tired at the edges" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 51 | | tagDensity | 0.137 | | leniency | 0.275 | | rawRatio | 0 | | effectiveRatio | 0 | |