| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 27 | | adverbTagCount | 1 | | adverbTags | | 0 | "he said quietly [quietly]" |
| | dialogueSentences | 51 | | tagDensity | 0.529 | | leniency | 1 | | rawRatio | 0.037 | | effectiveRatio | 0.037 | |
| 91.28% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1720 | | 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) | |
| 88.37% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1720 | | totalAiIsms | 4 | | 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 | 74 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 74 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 97 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 83 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1748 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 19 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 31 | | wordCount | 1090 | | uniqueNames | 15 | | maxNameDensity | 0.73 | | worstName | "Lucien" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Lucien" | | discoveredNames | | Rory | 5 | | Lucien | 8 | | Moreau | 1 | | Judas | 1 | | Italian | 1 | | Evan | 2 | | Cardiff | 1 | | Eva | 3 | | Hanbury | 1 | | Street | 1 | | Bermondsey | 1 | | Marseillaise | 1 | | September | 1 | | French | 1 | | Ptolemy | 3 |
| | persons | | 0 | "Rory" | | 1 | "Lucien" | | 2 | "Moreau" | | 3 | "Evan" | | 4 | "Eva" | | 5 | "Ptolemy" |
| | places | | 0 | "Cardiff" | | 1 | "Hanbury" | | 2 | "Street" |
| | globalScore | 1 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 44 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.572 | | wordCount | 1748 | | matches | | 0 | "not a large man, but he occupied space the way a storm front occupies a horizon" |
| |
| 97.94% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 97 | | matches | | 0 | "chose that moment" | | 1 | "understood that paper" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 48 | | mean | 36.42 | | std | 34.7 | | cv | 0.953 | | sampleLengths | | 0 | 37 | | 1 | 84 | | 2 | 4 | | 3 | 48 | | 4 | 41 | | 5 | 17 | | 6 | 2 | | 7 | 53 | | 8 | 5 | | 9 | 57 | | 10 | 86 | | 11 | 9 | | 12 | 23 | | 13 | 76 | | 14 | 7 | | 15 | 72 | | 16 | 40 | | 17 | 6 | | 18 | 52 | | 19 | 1 | | 20 | 5 | | 21 | 66 | | 22 | 6 | | 23 | 59 | | 24 | 37 | | 25 | 20 | | 26 | 4 | | 27 | 72 | | 28 | 6 | | 29 | 139 | | 30 | 23 | | 31 | 8 | | 32 | 1 | | 33 | 3 | | 34 | 1 | | 35 | 90 | | 36 | 56 | | 37 | 5 | | 38 | 120 | | 39 | 8 | | 40 | 17 | | 41 | 49 | | 42 | 62 | | 43 | 2 | | 44 | 30 | | 45 | 33 | | 46 | 5 | | 47 | 101 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 74 | | matches | | |
| 51.02% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 179 | | matches | | 0 | "was keeping" | | 1 | "was hammering" | | 2 | "was kissing" | | 3 | "was still standing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 20 | | semicolonCount | 2 | | flaggedSentences | 15 | | totalSentences | 97 | | ratio | 0.155 | | matches | | 0 | "The third deadbolt stuck the way it always did, and Rory wrestled it open already mid-sentence — \"Eva, if you've forgotten your keys again, I swear to God —\" — and the words died in her throat." | | 1 | "The bare bulb overhead caught his hair, platinum gone dark with wet, and caught his eyes too — that impossible pair, one amber, one black as the space between stars." | | 2 | "She'd rehearsed it, actually, in the small hours — what she'd do if he ever showed his face again — and the rehearsal had always ended with the door shut and her dignity intact." | | 3 | "Ptolemy chose that moment to appear, the fat tabby weaving between her ankles, and then — traitor, Judas in fur — trotting straight to Lucien and butting his head against the Italian leather of his shoe." | | 4 | "Every cool-headed, sensible part of her — the parts that had survived Evan, survived Cardiff, survived building a life out of nothing in this city — said close the door." | | 5 | "That was the thing about Lucien; he was not a large man, but he occupied space the way a storm front occupies a horizon." | | 6 | "He moved through Eva's chaos — the towers of books, the scrolls rubber-banded on the radiator, the research notes pinned to every wall like a conspiracy theorist's fever dream — with the care of someone who understood that paper could be worth more than gold." | | 7 | "Three days running, a man with a split eyebrow had been on her delivery route — outside the bookmakers on Hanbury Street, then by the shuttered church, then, worse, across the road from Silas' bar at closing time, standing in the rain like he had nowhere to be." | | 8 | "She noticed everything; it was the one useful inheritance from Evan, that hypervigilance, and she'd hated it, and now it was keeping her alive." | | 9 | "He'd spoken of it exactly once — one night, three whiskies in, his accent gone soft and Marseillaise around the edges — and then never again." | | 10 | "\"In French,\" he said quietly, \"there is a phrase. Je t'en prie. It means I beg of you, and it means don't mention it, and it means nothing at all.\" He looked at her, and the mask — the fixer's mask, the broker's careful blankness — cracked straight down the middle." | | 11 | "\"If I had stayed, I would have stayed. Do you understand? There would have been no leaving after one more day. One more hour.\" He lifted his hand and stopped — stopped, and held it there, an inch from her face, asking." | | 12 | "His hand cupped her jaw, leather cool from the rain, and then she was kissing him, or he was kissing her, and it was nothing like the rooftop — that had been soft, uncertain, a question — this was four months of wanting with the lid held down, his other hand finding her waist, her fingers fisting in the wet lapel of his beautiful ruinous suit, the ivory cane sliding off the sofa arm and hitting the floorboards with a crack neither of them heeded." | | 13 | "The amber eye and the black one held hers, and she watched him surrender — watched it happen, the fixer setting down the last of his leverage like a blade on a table." | | 14 | "Rory shot the first deadbolt, then the second, then wrestled the third into place, and when she turned back he was still standing in the middle of the wreckage of books with the rain drying on his shoulders, looking at her the way he had on the rooftop — the look that had started all of it." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 751 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 23 | | adverbRatio | 0.03062583222370173 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.007989347536617843 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 97 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 97 | | mean | 18.02 | | std | 17.87 | | cv | 0.992 | | sampleLengths | | 0 | 37 | | 1 | 25 | | 2 | 30 | | 3 | 19 | | 4 | 1 | | 5 | 1 | | 6 | 8 | | 7 | 4 | | 8 | 6 | | 9 | 34 | | 10 | 8 | | 11 | 26 | | 12 | 15 | | 13 | 12 | | 14 | 2 | | 15 | 3 | | 16 | 2 | | 17 | 36 | | 18 | 17 | | 19 | 5 | | 20 | 14 | | 21 | 30 | | 22 | 13 | | 23 | 3 | | 24 | 24 | | 25 | 45 | | 26 | 8 | | 27 | 3 | | 28 | 3 | | 29 | 4 | | 30 | 5 | | 31 | 20 | | 32 | 3 | | 33 | 2 | | 34 | 48 | | 35 | 2 | | 36 | 24 | | 37 | 7 | | 38 | 20 | | 39 | 8 | | 40 | 28 | | 41 | 16 | | 42 | 11 | | 43 | 3 | | 44 | 26 | | 45 | 6 | | 46 | 19 | | 47 | 17 | | 48 | 16 | | 49 | 1 |
| |
| 68.38% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.4536082474226804 | | totalSentences | 97 | | uniqueOpeners | 44 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 59 | | matches | | 0 | "Instead she heard herself say," | | 1 | "Somewhere below, the curry house's" |
| | ratio | 0.034 | |
| 30.17% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 28 | | totalSentences | 59 | | matches | | 0 | "She moved to slam the" | | 1 | "She'd rehearsed it, actually, in" | | 2 | "She should close the door" | | 3 | "He filled it." | | 4 | "He moved through Eva's chaos" | | 5 | "He didn't sit." | | 6 | "She didn't offer." | | 7 | "She noticed everything; it was" | | 8 | "She knew what slept inside" | | 9 | "She'd seen the thin bright" | | 10 | "His father's realm." | | 11 | "He'd spoken of it exactly" | | 12 | "He took a step closer" | | 13 | "Her voice came out steady," | | 14 | "It was said." | | 15 | "he said quietly, He looked" | | 16 | "His gloved hand closed on" | | 17 | "She crossed the room before" | | 18 | "Her name in his mouth," | | 19 | "He lifted his hand and" |
| | ratio | 0.475 | |
| 10.85% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 53 | | totalSentences | 59 | | matches | | 0 | "The third deadbolt stuck the" | | 1 | "Lucien Moreau stood in the" | | 2 | "The bare bulb overhead caught" | | 3 | "The smell of turmeric and" | | 4 | "Something she'd spent four months" | | 5 | "She moved to slam the" | | 6 | "She'd rehearsed it, actually, in" | | 7 | "A pause, precise as a" | | 8 | "Rory's thumb found the crescent" | | 9 | "Ptolemy chose that moment to" | | 10 | "Lucien looked down at the" | | 11 | "She should close the door" | | 12 | "Every cool-headed, sensible part of" | | 13 | "He filled it." | | 14 | "That was the thing about" | | 15 | "He moved through Eva's chaos" | | 16 | "Rain dripped from his cuff" | | 17 | "He didn't sit." | | 18 | "She didn't offer." | | 19 | "Lucien watched her face" |
| | ratio | 0.898 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 59 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 23 | | technicalSentenceCount | 5 | | matches | | 0 | "Every cool-headed, sensible part of her — the parts that had survived Evan, survived Cardiff, survived building a life out of nothing in this city — said close …" | | 1 | "He moved through Eva's chaos — the towers of books, the scrolls rubber-banded on the radiator, the research notes pinned to every wall like a conspiracy theoris…" | | 2 | "His hand cupped her jaw, leather cool from the rain, and then she was kissing him, or he was kissing her, and it was nothing like the rooftop — that had been so…" | | 3 | "He tasted of rain and coffee and the barest edge of something not entirely human, something warm and dark, and when they broke apart they were both breathing li…" | | 4 | "Rory shot the first deadbolt, then the second, then wrestled the third into place, and when she turned back he was still standing in the middle of the wreckage …" |
| |
| 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 | 13 | | fancyCount | 2 | | fancyTags | | 0 | "she heard (hear)" | | 1 | "he agreed (agree)" |
| | dialogueSentences | 51 | | tagDensity | 0.255 | | leniency | 0.51 | | rawRatio | 0.154 | | effectiveRatio | 0.078 | |