| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 9 | | adverbTagCount | 1 | | adverbTags | | 0 | "Quinn knelt again [again]" |
| | dialogueSentences | 31 | | tagDensity | 0.29 | | leniency | 0.581 | | rawRatio | 0.111 | | effectiveRatio | 0.065 | |
| 83.05% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1770 | | totalAiIsmAdverbs | 6 | | found | | | highlights | | 0 | "really" | | 1 | "very" | | 2 | "sharply" | | 3 | "suddenly" | | 4 | "slowly" |
| |
| 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) | |
| 83.05% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1770 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "etched" | | 1 | "synthetic" | | 2 | "traced" | | 3 | "perfect" | | 4 | "trembled" |
| |
| 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 | 122 | | matches | (empty) | |
| 72.60% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 5 | | narrationSentences | 122 | | filterMatches | | | hedgeMatches | | 0 | "appeared to" | | 1 | "seemed to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 145 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 46 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 4 | | markdownWords | 13 | | totalWords | 1791 | | ratio | 0.007 | | matches | | 0 | "M" | | 1 | "rift alignment" | | 2 | "bone token — entry only" | | 3 | "next transit: full moon (14th)" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 4 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 44 | | wordCount | 1463 | | uniqueNames | 14 | | maxNameDensity | 1.23 | | worstName | "Quinn" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Quinn" | | discoveredNames | | Harlow | 1 | | Quinn | 18 | | Platform | 1 | | London | 3 | | Underground | 1 | | Johnston | 1 | | Ferris | 10 | | Victorian | 1 | | Transport | 1 | | Consistent | 1 | | English | 2 | | Latin | 1 | | Morris | 2 | | Deptford | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Underground" | | 3 | "Johnston" | | 4 | "Ferris" | | 5 | "Morris" |
| | places | | 0 | "Platform" | | 1 | "London" | | 2 | "Transport" | | 3 | "Deptford" |
| | globalScore | 0.885 | | windowScore | 0.833 | |
| 66.67% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 90 | | glossingSentenceCount | 3 | | matches | | 0 | "tasted like copper and chalk dust" | | 1 | "looked like a Victorian frock coat over m" | | 2 | "looked like a ransacked flea market" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1791 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 145 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 56 | | mean | 31.98 | | std | 26.49 | | cv | 0.828 | | sampleLengths | | 0 | 55 | | 1 | 54 | | 2 | 67 | | 3 | 84 | | 4 | 2 | | 5 | 40 | | 6 | 24 | | 7 | 7 | | 8 | 81 | | 9 | 42 | | 10 | 75 | | 11 | 40 | | 12 | 4 | | 13 | 9 | | 14 | 4 | | 15 | 3 | | 16 | 70 | | 17 | 5 | | 18 | 8 | | 19 | 11 | | 20 | 22 | | 21 | 34 | | 22 | 78 | | 23 | 52 | | 24 | 9 | | 25 | 7 | | 26 | 3 | | 27 | 75 | | 28 | 5 | | 29 | 70 | | 30 | 4 | | 31 | 58 | | 32 | 25 | | 33 | 24 | | 34 | 5 | | 35 | 3 | | 36 | 27 | | 37 | 4 | | 38 | 75 | | 39 | 57 | | 40 | 30 | | 41 | 7 | | 42 | 77 | | 43 | 37 | | 44 | 11 | | 45 | 36 | | 46 | 42 | | 47 | 3 | | 48 | 35 | | 49 | 28 |
| |
| 88.01% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 6 | | totalSentences | 122 | | matches | | 0 | "been pried" | | 1 | "been knocked" | | 2 | "been struck" | | 3 | "been carved" | | 4 | "were rusted" | | 5 | "was gone" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 246 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 18 | | semicolonCount | 0 | | flaggedSentences | 15 | | totalSentences | 145 | | ratio | 0.103 | | matches | | 0 | "Detective Harlow Quinn ducked under the police tape strung across the mouth of the service tunnel and descended the rusted iron staircase into what the transit authority's records called Platform 9B — a station that, according to every official map of the London Underground, did not exist." | | 1 | "The blood pool was smaller than she'd expected — more of a smear, really, trailing in a crooked line from the centre of the platform toward the tunnel mouth." | | 2 | "Objects littered the ground — glass bottles stoppered with wax, bundles of dried herbs bound in copper wire, stacks of paper covered in dense calligraphy." | | 3 | "A fine layer of salt covered the floor in a wide arc, partially scuffed by boots — hers, Ferris's, the uniforms'." | | 4 | "A jar of dark liquid with something suspended inside it — a root, maybe, or a finger." | | 5 | "The needle trembled, then swung — not north." | | 6 | "Inside were pages of handwritten notes in at least three languages — English, Latin, and something else, a script she'd never encountered." | | 7 | "She caught phrases: *rift alignment*, *bone token — entry only*, *next transit: full moon (14th)*." | | 8 | "There — clutched against his chest, invisible from above — was a fourth bone disc." | | 9 | "No wound on the back, either — she'd checked." | | 10 | "It started — or ended, depending on your interpretation — at a point in the centre of the salt circle." | | 11 | "The rails were rusted solid, the gravel between the sleepers undisturbed except — there." | | 12 | "She thought of DS Morris — three years gone, a stairwell in Deptford, the door that shouldn't have been there, the sound she still couldn't describe." | | 13 | "It pointed steadily down the tunnel, into the space where the footprint ended and the dark began, trembling with the faintest vibration — not from trains, because no trains had run through this station in decades." | | 14 | "The needle swung — sharply, suddenly — from the tunnel to the staircase behind her." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 738 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 21 | | adverbRatio | 0.028455284552845527 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.0040650406504065045 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 145 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 145 | | mean | 12.35 | | std | 9.32 | | cv | 0.754 | | sampleLengths | | 0 | 8 | | 1 | 47 | | 2 | 11 | | 3 | 25 | | 4 | 8 | | 5 | 10 | | 6 | 25 | | 7 | 31 | | 8 | 11 | | 9 | 10 | | 10 | 29 | | 11 | 10 | | 12 | 14 | | 13 | 11 | | 14 | 10 | | 15 | 2 | | 16 | 16 | | 17 | 24 | | 18 | 9 | | 19 | 5 | | 20 | 1 | | 21 | 9 | | 22 | 7 | | 23 | 12 | | 24 | 12 | | 25 | 5 | | 26 | 15 | | 27 | 5 | | 28 | 25 | | 29 | 7 | | 30 | 38 | | 31 | 4 | | 32 | 3 | | 33 | 10 | | 34 | 6 | | 35 | 23 | | 36 | 16 | | 37 | 17 | | 38 | 10 | | 39 | 6 | | 40 | 24 | | 41 | 4 | | 42 | 9 | | 43 | 4 | | 44 | 3 | | 45 | 6 | | 46 | 5 | | 47 | 3 | | 48 | 21 | | 49 | 10 |
| |
| 62.07% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.41379310344827586 | | totalSentences | 145 | | uniqueOpeners | 60 | |
| 87.72% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 114 | | matches | | 0 | "Instead, it started six feet" | | 1 | "Just a point on the" | | 2 | "Somewhere above, London carried on" |
| | ratio | 0.026 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 29 | | totalSentences | 114 | | matches | | 0 | "He was thirty-two, built like" | | 1 | "His hands were open at" | | 2 | "It looked like a ransacked" | | 3 | "She crouched beside the body" | | 4 | "It moved in the wrong" | | 5 | "She checked the worn leather" | | 6 | "Her shoes crunched on something." | | 7 | "She looked down." | | 8 | "She followed its curve and" | | 9 | "He ambled over." | | 10 | "She pointed at the salt." | | 11 | "He nudged a fallen bottle" | | 12 | "She bagged a sample." | | 13 | "She moved to the nearest" | | 14 | "It was heavier than it" | | 15 | "It pointed down the tunnel," | | 16 | "She set the compass down" | | 17 | "She caught phrases: *rift alignment*," | | 18 | "She returned to the body" | | 19 | "His expression wasn't one of" |
| | ratio | 0.254 | |
| 82.81% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 86 | | totalSentences | 114 | | matches | | 0 | "The air tasted like copper" | | 1 | "Detective Harlow Quinn ducked under" | | 2 | "The tiles along the curved" | | 3 | "DS Ferris stood at the" | | 4 | "He was thirty-two, built like" | | 5 | "Quinn adjusted her nitrile gloves" | | 6 | "The blood pool was smaller" | | 7 | "A body lay face down" | | 8 | "His hands were open at" | | 9 | "Ferris held up an evidence" | | 10 | "Quinn took the bag, turned" | | 11 | "The discs were smooth, hand-carved." | | 12 | "Ferris pulled a hand from" | | 13 | "The trestle table wasn't alone." | | 14 | "A dozen more stood in" | | 15 | "Some had been knocked over." | | 16 | "Objects littered the ground —" | | 17 | "It looked like a ransacked" | | 18 | "Quinn said nothing." | | 19 | "She crouched beside the body" |
| | ratio | 0.754 | |
| 87.72% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 114 | | matches | | 0 | "If he'd been struck and" | | 1 | "As if whoever made it" |
| | ratio | 0.018 | |
| 86.17% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 63 | | technicalSentenceCount | 5 | | matches | | 0 | "Detective Harlow Quinn ducked under the police tape strung across the mouth of the service tunnel and descended the rusted iron staircase into what the transit …" | | 1 | "Underneath, arranged with care that bordered on devotion, sat a row of objects she couldn't immediately categorize." | | 2 | "And a small brass compass, its casing patinated with pale green verdigris, its face etched with symbols that matched the ones on the bone discs." | | 3 | "It was heavier than it looked, dense in a way that didn't correspond to its size, like holding a stone that had been carved to look like metal." | | 4 | "Just a point on the ground where blood appeared to have pooled and then extended in a line toward the tunnel mouth, thinning as it went, as though whatever bled…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 9 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 31 | | tagDensity | 0.032 | | leniency | 0.065 | | rawRatio | 0 | | effectiveRatio | 0 | |