| 0 | | parsed | | entry | "2006" | | detail | "temperature" | | explanation | "The text says the blade is warm, but the codex says it is always cold to the touch." | | paragraph | 2 | | substring | "the Fae-Forged Blade warm at her hip" |
| | status | "true_positive" | | matchedExpected | | entry | "2006" | | detail | "temperature" | | summary | "The Fae-Forged Blade is always cold per codex, but the passage says warm." |
| | location | | extractedText | "the Fae-Forged Blade warm at her hip" | | inBounds | true | | expectedText | "the Fae-Forged Blade warm at her hip" | | locationAccurate | true |
|
|
| 1 | | parsed | | entry | "4424" | | detail | "eyeColor" | | explanation | "The text says Isolde has pale blue eyes, but the codex says pale lavender." | | paragraph | 1 | | substring | "Her pale blue eyes" |
| | status | "true_positive" | | matchedExpected | | entry | "4424" | | detail | "eyeColor" | | summary | "Isolde has pale lavender eyes per codex, but the passage says pale blue eyes." |
| | location | | extractedText | "Her pale blue eyes" | | inBounds | true | | expectedText | "Her pale blue eyes, unblinking" | | locationAccurate | true |
|
|
| 2 | | parsed | | entry | "861" | | detail | "parkLocation" | | explanation | "The text places the grove in Hyde Park, but the codex says it is in Richmond Park." | | paragraph | 1 | | substring | "The Fae Grove in Hyde Park" |
| | status | "true_positive" | | matchedExpected | | entry | "861" | | detail | "parkLocation" | | summary | "The Fae Grove is in Richmond Park per codex, but the passage says Hyde Park." |
| | location | | extractedText | "The Fae Grove in Hyde Park" | | inBounds | true | | expectedText | "The Fae Grove in Hyde Park" | | locationAccurate | true |
|
|
| 3 | | parsed | | entry | "861" | | detail | "standingStones" | | explanation | "The text says the stones are elm, but the codex says ancient oak." | | paragraph | 1 | | substring | "The ancient elm standing stones" |
| | status | "true_positive" | | matchedExpected | | entry | "861" | | detail | "standingStones" | | summary | "The grove has oak standing stones per codex, but the passage says elm." |
| | location | | extractedText | "The ancient elm standing stones" | | inBounds | true | | expectedText | "The ancient elm standing stones" | | locationAccurate | true |
|
|
| 4 | | parsed | | entry | "2005" | | detail | "containerColor" | | explanation | "The text says red vials, but the codex says cobalt-blue." | | paragraph | 4 | | substring | "stored in little red glass vials" |
| | status | "true_positive" | | matchedExpected | | entry | "2005" | | detail | "containerColor" | | summary | "Dream Dust is stored in cobalt-blue vials per codex, but Isolde says red glass vials." |
| | location | | extractedText | "[not found in paragraph 4]" | | inBounds | true | | expectedText | "little red glass vials" | | locationAccurate | false |
|
|
| 5 | | parsed | | entry | "2005" | | detail | "sealMaterial" | | explanation | "The text says white wax, but the codex says black wax." | | paragraph | 4 | | substring | "sealed with white wax" |
| | status | "true_positive" | | matchedExpected | | entry | "2005" | | detail | "sealMaterial" | | summary | "Dream Dust vials are sealed with black wax per codex, but Isolde says white wax." |
| | location | | extractedText | "[not found in paragraph 4]" | | inBounds | true | | expectedText | "sealed with white wax" | | locationAccurate | false |
|
|
| 6 | | parsed | | entry | "4422" | | detail | "eyeColor" | | explanation | "The text says Father Cormac has dark brown eyes, but the codex says pale blue." | | paragraph | 5 | | substring | "his dark brown eyes" |
| | status | "true_positive" | | matchedExpected | | entry | "4422" | | detail | "eyeColor" | | summary | "Father Cormac has pale blue eyes per codex, but the passage says dark brown eyes." |
| | location | | extractedText | "[not found in paragraph 5]" | | inBounds | true | | expectedText | "his dark brown eyes troubled" | | locationAccurate | false |
|
|
| 7 | | parsed | | entry | "4422" | | detail | "rosary" | | explanation | "The text says cedar, but the codex says rowan wood." | | paragraph | 5 | | substring | "his cedar rosary beads" |
| | status | "true_positive" | | matchedExpected | | entry | "4422" | | detail | "rosary" | | summary | "Cormac carries a rowan wood rosary per codex, but the passage says cedar." |
| | location | | extractedText | "[not found in paragraph 5]" | | inBounds | true | | expectedText | "his cedar rosary beads" | | locationAccurate | false |
|
|
| 8 | | parsed | | entry | "7002" | | detail | "signedYear" | | explanation | "The text says the Covenant was from 1066, but the codex says it was signed in 1215." | | paragraph | 5 | | substring | "the old treaty from 1066" |
| | status | "true_positive" | | matchedExpected | | entry | "7002" | | detail | "signedYear" | | summary | "The Covenant of Separation was signed in 1215 per codex, but Cormac says 1066." |
| | location | | extractedText | "[not found in paragraph 5]" | | inBounds | true | | expectedText | "the old treaty from 1066" | | locationAccurate | false |
|
|
| 9 | | parsed | | entry | "4415" | | detail | "eyeColor" | | explanation | "The text says Lucien has two amber eyes, but the codex says he is heterochromatic—one amber, one black." | | paragraph | 6 | | substring | "Both his amber eyes" |
| | status | "true_positive" | | matchedExpected | | entry | "4415" | | detail | "eyeColor" | | summary | "Lucien has heterochromatic eyes (one amber, one black), but the passage says both amber." |
| | location | | extractedText | "[not found in paragraph 6]" | | inBounds | true | | expectedText | "Both his amber eyes were fixed" | | locationAccurate | false |
|
|
| 10 | | parsed | | entry | "4415" | | detail | "cane" | | explanation | "The text says mahogany, but the codex says ivory-handled." | | paragraph | 6 | | substring | "his mahogany cane" |
| | status | "true_positive" | | matchedExpected | | entry | "4415" | | detail | "cane" | | summary | "Lucien carries an ivory-handled cane per codex, but the passage says mahogany." |
| | location | | extractedText | "[not found in paragraph 6]" | | inBounds | true | | expectedText | "leaning on his mahogany cane" | | locationAccurate | false |
|
|
| 11 | | parsed | | entry | "4421" | | detail | "tattoo" | | explanation | "The text says right arm, but the codex says left arm." | | paragraph | 7 | | substring | "The flame serpent tattoo on her right arm" |
| | status | "true_positive" | | matchedExpected | | entry | "4421" | | detail | "tattoo" | | summary | "Yasmin's flame serpent tattoo is on her left arm per codex, but the passage says right arm." |
| | location | | extractedText | "[not found in paragraph 7]" | | inBounds | true | | expectedText | "tattoo on her right arm" | | locationAccurate | false |
|
|
| 12 | | parsed | | entry | "856" | | detail | "currentLocation" | | explanation | "The text says Shoreditch, but the codex says Camden." | | paragraph | 8 | | substring | "abandoned station under Shoreditch" |
| | status | "true_positive" | | matchedExpected | | entry | "856" | | detail | "currentLocation" | | summary | "The Veil Market is under Camden per codex, but Wei-Lin says Shoreditch." |
| | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "abandoned station under Shoreditch" | | locationAccurate | false |
|
|
| 13 | | parsed | | entry | "2006" | | detail | "material" | | explanation | "The text says bronze, but the codex says moonsilver." | | paragraph | 8 | | substring | "bronze daggers" |
| | status | "true_positive" | | matchedExpected | | entry | "2006" | | detail | "material" | | summary | "Fae-Forged Blades are moonsilver per codex, but Wei-Lin says bronze." |
| | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "bronze daggers, they say" | | locationAccurate | false |
|
|
| 14 | | parsed | | entry | "6006" | | detail | "logo" | | explanation | "The text says sword inside a circle, but the codex says thorned branch inside a shield." | | paragraph | 9 | | substring | "the sword inside a circle" |
| | status | "true_positive" | | matchedExpected | | entry | "6006" | | detail | "logo" | | summary | "Blackthorn Security's logo is a thorned branch inside a shield per codex, but Kai says a sword inside a circle." |
| | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "the sword inside a circle" | | locationAccurate | false |
|
|
| 15 | | parsed | | entry | "4419" | | detail | "walkingStick" | | explanation | "The text says oak, but the codex says blackthorn." | | paragraph | 10 | | substring | "oak walking stick" |
| | status | "true_positive" | | matchedExpected | | entry | "4419" | | detail | "walkingStick" | | summary | "Maggie carries a blackthorn stick per codex, but the passage says oak." |
| | location | | extractedText | "[not found in paragraph 10]" | | inBounds | true | | expectedText | "her oak walking stick" | | locationAccurate | false |
|
|
| 16 | | parsed | | entry | "4419" | | detail | "eyeColor" | | explanation | "The text says green, but the codex says sharp grey." | | paragraph | 10 | | substring | "Her keen green eyes" |
| | status | "true_positive" | | matchedExpected | | entry | "4419" | | detail | "eyeColor" | | summary | "Maggie has grey eyes per codex, but the passage says green." |
| | location | | extractedText | "[not found in paragraph 10]" | | inBounds | true | | expectedText | "Her keen green eyes" | | locationAccurate | false |
|
|
| 17 | | parsed | | entry | "6001" | | detail | "foundingYear" | | explanation | "The text says 1066, but the codex says 1215." | | paragraph | 10 | | substring | "The Wardens were founded in 1066" |
| | status | "true_positive" | | matchedExpected | | entry | "6001" | | detail | "foundingYear" | | summary | "The Wardens were founded in 1215 per codex, but Maggie says 1066." |
| | location | | extractedText | "[not found in paragraph 10]" | | inBounds | true | | expectedText | "The Wardens were founded in 1066" | | locationAccurate | false |
|
|
| 18 | | parsed | | entry | "4417" | | detail | "scar" | | explanation | "The text says right forearm, but the codex says left forearm." | | paragraph | 11 | | substring | "His scarred right forearm" |
| | status | "true_positive" | | matchedExpected | | entry | "4417" | | detail | "scar" | | summary | "Tomás has a scar on his left forearm per codex, but the passage says right forearm." |
| | location | | extractedText | "[not found in paragraph 11]" | | inBounds | true | | expectedText | "His scarred right forearm" | | locationAccurate | false |
|
|
| 19 | | parsed | | entry | "855" | | detail | "ruler" | | explanation | "The text says Prince Belphegor operates in Avaros, but the codex says he is the ruler of Dymas (Gluttony). Prince Mammon rules Avaros (Greed)." | | paragraph | 11 | | substring | "Prince Belphegor's agents" |
| | status | "true_positive" | | matchedExpected | | entry | "855" | | detail | "ruler" | | summary | "Avaros is Prince Mammon's realm per codex, but Tomás says Prince Belphegor's agents operate there." |
| | location | | extractedText | "[not found in paragraph 11]" | | inBounds | true | | expectedText | "Prince Belphegor's agents are kidnapping humans" | | locationAccurate | false |
|
|
| 20 | | parsed | | entry | "2001" | | detail | "chainMaterial" | | explanation | "The text says golden chain, but the codex says silver chain." | | paragraph | 13 | | substring | "the golden chain tangled in her fingers" |
| | status | "true_positive" | | matchedExpected | | entry | "2001" | | detail | "chainMaterial" | | summary | "The Heartstone Pendant has a silver chain per codex, but the passage says golden chain." |
| | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "the golden chain tangled in her fingers" | | locationAccurate | false |
|
|
| 21 | | parsed | | entry | "2001" | | detail | "gemstoneColor" | | explanation | "The text says crimson, which matches the codex (deep crimson), but it is noted as \"brighter than she'd ever seen.\" This is not a factual contradiction, just an observation." | | paragraph | 13 | | substring | "the crimson stone glowing" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "the golden chain tangled in her fingers" | | locationAccurate | false |
| | closestExpected | | entry | "2001" | | detail | "chainMaterial" | | summary | "The Heartstone Pendant has a silver chain per codex, but the passage says golden chain." |
| | reason | "detail mismatch: got \"gemstoneColor\", expected \"chainMaterial\"" |
|
| 22 | | parsed | | entry | "4418" | | detail | "eyeColor" | | explanation | "The text says blue, but the codex says faintly glowing violet." | | paragraph | 12 | | substring | "their glowing blue eyes" |
| | status | "true_positive" | | matchedExpected | | entry | "4418" | | detail | "eyeColor" | | summary | "Nyx has violet eyes per codex, but the passage says blue." |
| | location | | extractedText | "[not found in paragraph 12]" | | inBounds | true | | expectedText | "their glowing blue eyes" | | locationAccurate | false |
|
|
| 23 | | parsed | | entry | "4420" | | detail | "hair" | | explanation | "The text says black hair, but the codex says dyed electric-blue." | | paragraph | 9 | | substring | "his natural black hair" |
| | status | "true_positive" | | matchedExpected | | entry | "4420" | | detail | "hair" | | summary | "Kai has dyed electric-blue hair per codex, but the passage says natural black hair." |
| | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "his natural black hair falling into his face" | | locationAccurate | false |
|
|
| 24 | | parsed | | entry | "4414" | | detail | "glasses" | | explanation | "The text says square glasses, but the codex says round glasses." | | paragraph | 2 | | substring | "Her square glasses" |
| | status | "true_positive" | | matchedExpected | | entry | "4414" | | detail | "glasses" | | summary | "Eva wears round glasses per codex, but the passage says square glasses." |
| | location | | extractedText | "Her square glasses" | | inBounds | true | | expectedText | "Her square glasses kept fogging" | | locationAccurate | true |
|
|
| 25 | | parsed | | entry | "4424" | | detail | "speech" | | explanation | "The text says she intoned, which implies speaking normally, but the codex says she speaks in riddles. The text does not show her speaking in riddles, but this is more about behavior than a factual detail. However, the text also has her leaving footprints, which directly contradicts the codex." | | paragraph | 3 | | substring | "Isolde intoned" |
| | status | "false_positive" | | location | | extractedText | "Isolde intoned" | | inBounds | true | | expectedText | "Her pale blue eyes, unblinking" | | locationAccurate | false |
| | closestExpected | | entry | "4424" | | detail | "eyeColor" | | summary | "Isolde has pale lavender eyes per codex, but the passage says pale blue eyes." |
| | reason | "detail mismatch: got \"speech\", expected \"eyeColor\"" |
|
| 26 | | parsed | | entry | "4424" | | detail | "footprints" | | explanation | "The text says she leaves footprints, but the codex says she leaves no footprints when she walks." | | paragraph | 4 | | substring | "her bare feet leaving clear prints in the soft earth" |
| | status | "true_positive" | | matchedExpected | | entry | "4424" | | detail | "footprints" | | summary | "Isolde leaves no footprints per codex, but the passage says she leaves clear prints." |
| | location | | extractedText | "[not found in paragraph 4]" | | inBounds | true | | expectedText | "her bare feet leaving clear prints in the soft earth" | | locationAccurate | false |
|
|
| 27 | | parsed | | entry | "4416" | | detail | "eyeColor" | | explanation | "Wait, this is for Father Cormac. I already noted it. Let me check for Detective Quinn: she is not mentioned in the text." | | paragraph | 5 | | substring | "his dark brown eyes" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 5]" | | inBounds | true | | expectedText | "Her pale blue eyes, unblinking" | | locationAccurate | false |
| | closestExpected | | entry | "4424" | | detail | "eyeColor" | | summary | "Isolde has pale lavender eyes per codex, but the passage says pale blue eyes." |
| | reason | "entry mismatch: got \"4416\", expected \"4424\"" |
|
| 28 | | parsed | | entry | "4413" | | detail | "limp" | | explanation | "The text says the injury is from Prague, which matches the backstory, but the codex specifies the limp is in his left leg. The text says he rubbed his left knee, which is consistent. No violation here." | | paragraph | 14 | | substring | "He rubbed his left knee — the old injury from that very operation" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 29 | | parsed | | entry | "856" | | detail | "entryRequirement" | | explanation | "This matches the codex (bone token), so no violation." | | paragraph | 9 | | substring | "The market's under Camden this month. I tracked the bone-token transactions" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "abandoned station under Shoreditch" | | locationAccurate | false |
| | closestExpected | | entry | "856" | | detail | "currentLocation" | | summary | "The Veil Market is under Camden per codex, but Wei-Lin says Shoreditch." |
| | reason | "detail mismatch: got \"entryRequirement\", expected \"currentLocation\"" |
|
| 30 | | parsed | | entry | "2006" | | detail | "givenTo" | | explanation | "The text says she has it, which matches the codex (given to Aurora), so no violation." | | paragraph | 13 | | substring | "She pulled it out" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "the Fae-Forged Blade warm at her hip" | | locationAccurate | false |
| | closestExpected | | entry | "2006" | | detail | "temperature" | | summary | "The Fae-Forged Blade is always cold per codex, but the passage says warm." |
| | reason | "detail mismatch: got \"givenTo\", expected \"temperature\"" |
|
| 31 | | parsed | | entry | "4412" | | detail | "eyeColor" | | explanation | "The text does not mention Aurora's eye color, so no violation." | | paragraph | 2 | | substring | "Aurora arrived first" |
| | status | "false_positive" | | location | | extractedText | "Aurora arrived first" | | inBounds | true | | expectedText | "Her pale blue eyes, unblinking" | | locationAccurate | false |
| | closestExpected | | entry | "4424" | | detail | "eyeColor" | | summary | "Isolde has pale lavender eyes per codex, but the passage says pale blue eyes." |
| | reason | "entry mismatch: got \"4412\", expected \"4424\"" |
|
| 32 | | parsed | | entry | "4414" | | detail | "satchel" | | explanation | "The text says leather satchel, but the codex says worn leather satchel full of books. The material matches, so no violation." | | paragraph | 2 | | substring | "clutching her leather satchel with both hands" |
| | status | "false_positive" | | location | | extractedText | "clutching her leather satchel with both hands" | | inBounds | true | | expectedText | "Her square glasses kept fogging" | | locationAccurate | false |
| | closestExpected | | entry | "4414" | | detail | "glasses" | | summary | "Eva wears round glasses per codex, but the passage says square glasses." |
| | reason | "detail mismatch: got \"satchel\", expected \"glasses\"" |
|
| 33 | | parsed | | entry | "4414" | | detail | "hair" | | explanation | "Matches codex, no violation." | | paragraph | 2 | | substring | "her curly red hair" |
| | status | "false_positive" | | location | | extractedText | "her curly red hair" | | inBounds | true | | expectedText | "Her square glasses kept fogging" | | locationAccurate | false |
| | closestExpected | | entry | "4414" | | detail | "glasses" | | summary | "Eva wears round glasses per codex, but the passage says square glasses." |
| | reason | "detail mismatch: got \"hair\", expected \"glasses\"" |
|
| 34 | | parsed | | entry | "4419" | | detail | "hair" | | explanation | "Matches codex, no violation." | | paragraph | 10 | | substring | "his thinning ginger hair" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | inBounds | true | | expectedText | "her oak walking stick" | | locationAccurate | false |
| | closestExpected | | entry | "4419" | | detail | "walkingStick" | | summary | "Maggie carries a blackthorn stick per codex, but the passage says oak." |
| | reason | "detail mismatch: got \"hair\", expected \"walkingStick\"" |
|
| 35 | | parsed | | entry | "4423" | | detail | "tattoo" | | explanation | "The text says chest, but the codex says back. This is a contradiction." | | paragraph | 8 | | substring | "The edge of the dragon tattoo on his chest" |
| | status | "true_positive" | | matchedExpected | | entry | "4423" | | detail | "tattoo" | | summary | "Wei-Lin's dragon tattoo covers his back per codex, but the passage says chest." |
| | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "the dragon tattoo on his chest" | | locationAccurate | false |
|
|
| 36 | | parsed | | entry | "4420" | | detail | "wristTattoo" | | explanation | "Already noted as violation (hair). The wrist tattoo is not mentioned." | | paragraph | 9 | | substring | "his natural black hair" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "his natural black hair falling into his face" | | locationAccurate | false |
| | closestExpected | | entry | "4420" | | detail | "hair" | | summary | "Kai has dyed electric-blue hair per codex, but the passage says natural black hair." |
| | reason | "detail mismatch: got \"wristTattoo\", expected \"hair\"" |
|
| 37 | | parsed | | entry | "860" | | detail | "password" | | explanation | "This refers to Yasmin's shop, but the password is not mentioned, so no violation." | | paragraph | 7 | | substring | "I'd recognize my own stock" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 38 | | parsed | | entry | "859" | | detail | "ruler" | | explanation | "The text says the Somnian Cult's master is Prince Lilith, but the codex says Prince Asmodeus. Prince Lilith is the ruler of Luxuria (Lust)." | | paragraph | 4 | | substring | "Their master, Prince Lilith" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 4]" | | inBounds | true | | expectedText | "Prince Belphegor's agents are kidnapping humans" | | locationAccurate | false |
| | closestExpected | | entry | "855" | | detail | "ruler" | | summary | "Avaros is Prince Mammon's realm per codex, but Tomás says Prince Belphegor's agents operate there." |
| | reason | "entry mismatch: got \"859\", expected \"855\"" |
|
| 39 | | parsed | | entry | "4421" | | detail | "skinTone" | | explanation | "The text does not mention skin tone, but the codex says bronze skin. No contradiction." | | paragraph | 7 | | substring | "her amber eyes narrowing" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | inBounds | true | | expectedText | "tattoo on her right arm" | | locationAccurate | false |
| | closestExpected | | entry | "4421" | | detail | "tattoo" | | summary | "Yasmin's flame serpent tattoo is on her left arm per codex, but the passage says right arm." |
| | reason | "detail mismatch: got \"skinTone\", expected \"tattoo\"" |
|
| 40 | | parsed | | entry | "4417" | | detail | "birthplace" | | explanation | "The text says Madrid accent, but the codex says he was born in Seville, Spain. Madrid and Seville are different cities. This is a contradiction." | | paragraph | 11 | | substring | "His Madrid accent" |
| | status | "true_positive" | | matchedExpected | | entry | "4417" | | detail | "birthplace" | | summary | "Tomás was born in Seville per codex, but the passage implies Madrid accent." |
| | location | | extractedText | "[not found in paragraph 11]" | | inBounds | true | | expectedText | "His Madrid accent" | | locationAccurate | false |
|
|
| 41 | | parsed | | entry | "853" | | detail | "ruler" | | explanation | "Already noted: Belphegor rules Dymas, not Avaros." | | paragraph | 11 | | substring | "said Prince Belphegor's agents" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 11]" | | inBounds | true | | expectedText | "Prince Belphegor's agents are kidnapping humans" | | locationAccurate | false |
| | closestExpected | | entry | "855" | | detail | "ruler" | | summary | "Avaros is Prince Mammon's realm per codex, but Tomás says Prince Belphegor's agents operate there." |
| | reason | "entry mismatch: got \"853\", expected \"855\"" |
|
| 42 | | parsed | | entry | "2002" | | detail | "pageMaterial" | | explanation | "The text refers to a contract document, but the codex specifies the Ledger of Debts is made of thin beaten copper pages. The text doesn't specify the material, so no violation." | | paragraph | 11 | | substring | "Her contract document" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 11]" | | inBounds | true | | expectedText | "bronze daggers, they say" | | locationAccurate | false |
| | closestExpected | | entry | "2006" | | detail | "material" | | summary | "Fae-Forged Blades are moonsilver per codex, but Wei-Lin says bronze." |
| | reason | "entry mismatch: got \"2002\", expected \"2006\"" |
|
| 43 | | parsed | | entry | "4415" | | detail | "dress" | | explanation | "Matches codex (tailored charcoal suits), no violation." | | paragraph | 6 | | substring | "adjusting the cuff of his charcoal suit" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | inBounds | true | | expectedText | "leaning on his mahogany cane" | | locationAccurate | false |
| | closestExpected | | entry | "4415" | | detail | "cane" | | summary | "Lucien carries an ivory-handled cane per codex, but the passage says mahogany." |
| | reason | "detail mismatch: got \"dress\", expected \"cane\"" |
|
| 44 | | parsed | | entry | "854" | | detail | "signColor" | | explanation | "The bar sign is not mentioned, so no violation." | | paragraph | 14 | | substring | "The group dispersed" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 45 | | parsed | | entry | "7001" | | detail | "appearance" | | explanation | "The codex says the Veil appears as a faint shimmering distortion visible only to those with supernatural sight. The text says it shimmered, which is consistent, and implies it's visible, but who is seeing it? The text doesn't specify if it's visible to everyone. This might be an omission, not a contradiction. I'll skip it." | | paragraph | 14 | | substring | "the Veil shimmered — thin as gossamer" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 46 | | parsed | | entry | "7003" | | detail | "formation" | | explanation | "Matches the codex (tend to form near underground water sources), so no violation." | | paragraph | 12 | | substring | "Three new ones opened near underground water sources" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 12]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 47 | | parsed | | entry | "7005" | | detail | "requirement" | | explanation | "The text describes a Helbound soul, but the codex defines Helbound as mortals in contracts with Hel Princes. This is consistent, so no violation." | | paragraph | 12 | | substring | "I treated a Helbound soul last week" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 12]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 48 | | parsed | | entry | "2005" | | detail | "effect" | | explanation | "The text says the modified Dream Dust is designed to create dependency, but the codex says Dream Dust induces a deep trance. The side effect of overuse is permanent drowsiness, not dependency. This is a contradiction." | | paragraph | 4 | | substring | "designed to create dependency" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 4]" | | inBounds | true | | expectedText | "little red glass vials" | | locationAccurate | false |
| | closestExpected | | entry | "2005" | | detail | "containerColor" | | summary | "Dream Dust is stored in cobalt-blue vials per codex, but Isolde says red glass vials." |
| | reason | "detail mismatch: got \"effect\", expected \"containerColor\"" |
|
| 49 | | parsed | | entry | "4418" | | detail | "age" | | explanation | "The text refers to a mortal speaking truth, but Nyx is ageless. No violation." | | paragraph | 12 | | substring | "The mortal speaks truth" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 12]" | | inBounds | true | | expectedText | "their glowing blue eyes" | | locationAccurate | false |
| | closestExpected | | entry | "4418" | | detail | "eyeColor" | | summary | "Nyx has violet eyes per codex, but the passage says blue." |
| | reason | "detail mismatch: got \"age\", expected \"eyeColor\"" |
|
| 50 | | parsed | | entry | "6003" | | detail | "lure" | | explanation | "The text says the Somnian Cult distributes Dream Dust, which matches the codex (lure: distribute Dream Dust). No violation." | | paragraph | 4 | | substring | "distribute Dream Dust" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 4]" | | inBounds | true | | expectedText | "Prince Lilith, demands more dreamers" | | locationAccurate | false |
| | closestExpected | | entry | "6003" | | detail | "master" | | summary | "The Somnian Cult serves Prince Asmodeus per codex, but Isolde says Prince Lilith." |
| | reason | "detail mismatch: got \"lure\", expected \"master\"" |
|
| 51 | | parsed | | entry | "6002" | | detail | "operations" | | explanation | "The text mentions the Court's servants, which matches, so no violation." | | paragraph | 6 | | substring | "human proxies, corrupted artifacts, and Helbound agents" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | inBounds | true | | expectedText | "the Crimson Court's base of operations has shifted from Dymas to Irath" | | locationAccurate | false |
| | closestExpected | | entry | "6002" | | detail | "headquarters" | | summary | "The Crimson Court's headquarters is in Dymas per codex, but Lucien says their base has shifted to Irath." |
| | reason | "detail mismatch: got \"operations\", expected \"headquarters\"" |
|
| 52 | | parsed | | entry | "4422" | | detail | "collar" | | explanation | "The text doesn't mention the collar, but it's not a contradiction. No violation." | | paragraph | 5 | | substring | "Father Cormac crossed himself" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 5]" | | inBounds | true | | expectedText | "his dark brown eyes troubled" | | locationAccurate | false |
| | closestExpected | | entry | "4422" | | detail | "eyeColor" | | summary | "Father Cormac has pale blue eyes per codex, but the passage says dark brown eyes." |
| | reason | "detail mismatch: got \"collar\", expected \"eyeColor\"" |
|
| 53 | | parsed | | entry | "4423" | | detail | "missingFinger" | | explanation | "The text doesn't mention the missing finger, so no violation." | | paragraph | 8 | | substring | "Wei-Lin, leaning against one of the standing stones with his arms folded" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "the dragon tattoo on his chest" | | locationAccurate | false |
| | closestExpected | | entry | "4423" | | detail | "tattoo" | | summary | "Wei-Lin's dragon tattoo covers his back per codex, but the passage says chest." |
| | reason | "detail mismatch: got \"missingFinger\", expected \"tattoo\"" |
|
| 54 | | parsed | | entry | "4420" | | detail | "headphones" | | explanation | "The text doesn't mention headphones, so no violation." | | paragraph | 9 | | substring | "Kai corrected from behind his laptop screen" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "his natural black hair falling into his face" | | locationAccurate | false |
| | closestExpected | | entry | "4420" | | detail | "hair" | | summary | "Kai has dyed electric-blue hair per codex, but the passage says natural black hair." |
| | reason | "detail mismatch: got \"headphones\", expected \"hair\"" |
|
| 55 | | parsed | | entry | "4416" | | detail | "bearing" | | explanation | "Detective Quinn is not mentioned, so no violation." | | paragraph | 14 | | substring | "Silas, who had been standing silently" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 56 | | parsed | | entry | "4424" | | detail | "compulsion" | | explanation | "The text doesn't address lying or misleading, so no violation." | | paragraph | 3 | | substring | "Isolde intoned" |
| | status | "false_positive" | | location | | extractedText | "Isolde intoned" | | inBounds | true | | expectedText | "Her pale blue eyes, unblinking" | | locationAccurate | false |
| | closestExpected | | entry | "4424" | | detail | "eyeColor" | | summary | "Isolde has pale lavender eyes per codex, but the passage says pale blue eyes." |
| | reason | "detail mismatch: got \"compulsion\", expected \"eyeColor\"" |
|
| 57 | | parsed | | entry | "2004" | | detail | "patina" | | explanation | "The Veil Compass is not mentioned, so no violation." | | paragraph | 9 | | substring | "The market's under Camden this month" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 58 | | parsed | | entry | "2003" | | detail | "power" | | explanation | "The gauntlet is not mentioned, so no violation." | | paragraph | 11 | | substring | "I treated a Helbound soul last week" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 11]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 59 | | parsed | | entry | "858" | | detail | "cat" | | explanation | "The cat is not mentioned, so no violation." | | paragraph | 4 | | substring | "Eva was beside her" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 4]" | | inBounds | true | | expectedText | "The Fae Grove in Hyde Park" | | locationAccurate | false |
| | closestExpected | | entry | "861" | | detail | "parkLocation" | | summary | "The Fae Grove is in Richmond Park per codex, but the passage says Hyde Park." |
| | reason | "entry mismatch: got \"858\", expected \"861\"" |
|
| 60 | | parsed | | entry | "857" | | detail | "ruler" | | explanation | "Irath is ruled by Prince Abaddon, so if the Court has shifted there, it doesn't contradict the ruler. No violation." | | paragraph | 6 | | substring | "he says the Crimson Court's base of operations has shifted from Dymas to Irath" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | inBounds | true | | expectedText | "Prince Belphegor's agents are kidnapping humans" | | locationAccurate | false |
| | closestExpected | | entry | "855" | | detail | "ruler" | | summary | "Avaros is Prince Mammon's realm per codex, but Tomás says Prince Belphegor's agents operate there." |
| | reason | "entry mismatch: got \"857\", expected \"855\"" |
|
| 61 | | parsed | | entry | "4413" | | detail | "signetRing" | | explanation | "The ring is not mentioned, so no violation." | | paragraph | 14 | | substring | "Silas, who had been standing silently" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 62 | | parsed | | entry | "855" | | detail | "description" | | explanation | "Matches the codex (ruler: Prince Mammon), so no violation." | | paragraph | 6 | | substring | "Mammon breaks it daily in Avaros" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | inBounds | true | | expectedText | "Prince Belphegor's agents are kidnapping humans" | | locationAccurate | false |
| | closestExpected | | entry | "855" | | detail | "ruler" | | summary | "Avaros is Prince Mammon's realm per codex, but Tomás says Prince Belphegor's agents operate there." |
| | reason | "detail mismatch: got \"description\", expected \"ruler\"" |
|
| 63 | | parsed | | entry | "4417" | | detail | "medallion" | | explanation | "The medallion is not mentioned, so no violation." | | paragraph | 11 | | substring | "His Madrid accent thickened with agitation" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 11]" | | inBounds | true | | expectedText | "His scarred right forearm" | | locationAccurate | false |
| | closestExpected | | entry | "4417" | | detail | "scar" | | summary | "Tomás has a scar on his left forearm per codex, but the passage says right forearm." |
| | reason | "detail mismatch: got \"medallion\", expected \"scar\"" |
|
| 64 | | parsed | | entry | "4419" | | detail | "glasses" | | explanation | "The glasses are not mentioned, so no violation." | | paragraph | 10 | | substring | "Maggie rapped her oak walking stick" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | inBounds | true | | expectedText | "her oak walking stick" | | locationAccurate | false |
| | closestExpected | | entry | "4419" | | detail | "walkingStick" | | summary | "Maggie carries a blackthorn stick per codex, but the passage says oak." |
| | reason | "detail mismatch: got \"glasses\", expected \"walkingStick\"" |
|
| 65 | | parsed | | entry | "862" | | detail | "ruler" | | explanation | "Matches the codex (ruler of Luxuria), but the text says she is the master of the Somnian Cult, which is incorrect per the codex." | | paragraph | 4 | | substring | "Prince Lilith" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 4]" | | inBounds | true | | expectedText | "Prince Belphegor's agents are kidnapping humans" | | locationAccurate | false |
| | closestExpected | | entry | "855" | | detail | "ruler" | | summary | "Avaros is Prince Mammon's realm per codex, but Tomás says Prince Belphegor's agents operate there." |
| | reason | "entry mismatch: got \"862\", expected \"855\"" |
|
| 66 | | parsed | | entry | "859" | | detail | "atmosphere" | | explanation | "This is about the Fae Grove, not Somnia, so no violation." | | paragraph | 4 | | substring | "the grove's strange microclimate" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 4]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 67 | | parsed | | entry | "4412" | | detail | "backstory" | | explanation | "The codex says the Heartstone was given to Aurora by an unknown benefactor. The text doesn't contradict this." | | paragraph | 13 | | substring | "the Heartstone Pendant pulse in her pocket" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 68 | | parsed | | entry | "2001" | | detail | "behavior" | | explanation | "The text says it pulses in response to a rift, which is similar to a Hel portal. No violation." | | paragraph | 13 | | substring | "pulses faintly with warmth when near a Hel portal" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "the golden chain tangled in her fingers" | | locationAccurate | false |
| | closestExpected | | entry | "2001" | | detail | "chainMaterial" | | summary | "The Heartstone Pendant has a silver chain per codex, but the passage says golden chain." |
| | reason | "detail mismatch: got \"behavior\", expected \"chainMaterial\"" |
|
| 69 | | parsed | | entry | "4424" | | detail | "appearance" | | explanation | "Matches codex, no violation." | | paragraph | 1 | | substring | "her waist-length silver hair" |
| | status | "false_positive" | | location | | extractedText | "her waist-length silver hair" | | inBounds | true | | expectedText | "Her pale blue eyes, unblinking" | | locationAccurate | false |
| | closestExpected | | entry | "4424" | | detail | "eyeColor" | | summary | "Isolde has pale lavender eyes per codex, but the passage says pale blue eyes." |
| | reason | "detail mismatch: got \"appearance\", expected \"eyeColor\"" |
|
| 70 | | parsed | | entry | "4424" | | detail | "height" | | explanation | "Height is not mentioned, so no violation." | | paragraph | 1 | | substring | "She stood at the center of the circle" |
| | status | "false_positive" | | location | | extractedText | "She stood at the center of the circle" | | inBounds | true | | expectedText | "Her pale blue eyes, unblinking" | | locationAccurate | false |
| | closestExpected | | entry | "4424" | | detail | "eyeColor" | | summary | "Isolde has pale lavender eyes per codex, but the passage says pale blue eyes." |
| | reason | "detail mismatch: got \"height\", expected \"eyeColor\"" |
|
| 71 | | parsed | | entry | "4414" | | detail | "height" | | explanation | "Height is not mentioned, so no violation." | | paragraph | 2 | | substring | "Eva was beside her" |
| | status | "false_positive" | | location | | extractedText | "Eva was beside her" | | inBounds | true | | expectedText | "Her square glasses kept fogging" | | locationAccurate | false |
| | closestExpected | | entry | "4414" | | detail | "glasses" | | summary | "Eva wears round glasses per codex, but the passage says square glasses." |
| | reason | "detail mismatch: got \"height\", expected \"glasses\"" |
|
| 72 | | parsed | | entry | "4412" | | detail | "height" | | explanation | "Height is not mentioned, so no violation." | | paragraph | 2 | | substring | "Aurora arrived first" |
| | status | "false_positive" | | location | | extractedText | "Aurora arrived first" | | inBounds | true | | expectedText | "" | | locationAccurate | true |
|
|
| 73 | | parsed | | entry | "4422" | | detail | "complexion" | | explanation | "Complexion is not mentioned, so no violation." | | paragraph | 5 | | substring | "his dark brown eyes" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 5]" | | inBounds | true | | expectedText | "his dark brown eyes troubled" | | locationAccurate | false |
| | closestExpected | | entry | "4422" | | detail | "eyeColor" | | summary | "Father Cormac has pale blue eyes per codex, but the passage says dark brown eyes." |
| | reason | "detail mismatch: got \"complexion\", expected \"eyeColor\"" |
|
| 74 | | parsed | | entry | "4421" | | detail | "scent" | | explanation | "Scent is not mentioned, so no violation." | | paragraph | 7 | | substring | "Yasmin uncorked a small vial and sniffed its contents" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | inBounds | true | | expectedText | "tattoo on her right arm" | | locationAccurate | false |
| | closestExpected | | entry | "4421" | | detail | "tattoo" | | summary | "Yasmin's flame serpent tattoo is on her left arm per codex, but the passage says right arm." |
| | reason | "detail mismatch: got \"scent\", expected \"tattoo\"" |
|
| 75 | | parsed | | entry | "4418" | | detail | "form" | | explanation | "Matches the form (humanoid silhouette of living shadow), no violation." | | paragraph | 12 | | substring | "Nyx materialized from the shadow" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 12]" | | inBounds | true | | expectedText | "their glowing blue eyes" | | locationAccurate | false |
| | closestExpected | | entry | "4418" | | detail | "eyeColor" | | summary | "Nyx has violet eyes per codex, but the passage says blue." |
| | reason | "detail mismatch: got \"form\", expected \"eyeColor\"" |
|
| 76 | | parsed | | entry | "4418" | | detail | "voice" | | explanation | "Matches the voice (sounds like a whisper carried on the wind), no violation." | | paragraph | 12 | | substring | "their voice like wind through dead leaves" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 12]" | | inBounds | true | | expectedText | "their glowing blue eyes" | | locationAccurate | false |
| | closestExpected | | entry | "4418" | | detail | "eyeColor" | | summary | "Nyx has violet eyes per codex, but the passage says blue." |
| | reason | "detail mismatch: got \"voice\", expected \"eyeColor\"" |
|
| 77 | | parsed | | entry | "4415" | | detail | "species" | | explanation | "Species is not mentioned, so no violation." | | paragraph | 6 | | substring | "And my father—" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | inBounds | true | | expectedText | "leaning on his mahogany cane" | | locationAccurate | false |
| | closestExpected | | entry | "4415" | | detail | "cane" | | summary | "Lucien carries an ivory-handled cane per codex, but the passage says mahogany." |
| | reason | "detail mismatch: got \"species\", expected \"cane\"" |
|
| 78 | | parsed | | entry | "4421" | | detail | "species" | | explanation | "Species is not mentioned, so no violation." | | paragraph | 7 | | substring | "Yasmin uncorked a small vial" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | inBounds | true | | expectedText | "tattoo on her right arm" | | locationAccurate | false |
| | closestExpected | | entry | "4421" | | detail | "tattoo" | | summary | "Yasmin's flame serpent tattoo is on her left arm per codex, but the passage says right arm." |
| | reason | "detail mismatch: got \"species\", expected \"tattoo\"" |
|
| 79 | | parsed | | entry | "4423" | | detail | "species" | | explanation | "Species is not mentioned, so no violation." | | paragraph | 8 | | substring | "Wei-Lin, leaning against one of the standing stones" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "the dragon tattoo on his chest" | | locationAccurate | false |
| | closestExpected | | entry | "4423" | | detail | "tattoo" | | summary | "Wei-Lin's dragon tattoo covers his back per codex, but the passage says chest." |
| | reason | "detail mismatch: got \"species\", expected \"tattoo\"" |
|
| 80 | | parsed | | entry | "4420" | | detail | "species" | | explanation | "Species is not mentioned, so no violation." | | paragraph | 9 | | substring | "Kai corrected from behind his laptop screen" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "his natural black hair falling into his face" | | locationAccurate | false |
| | closestExpected | | entry | "4420" | | detail | "hair" | | summary | "Kai has dyed electric-blue hair per codex, but the passage says natural black hair." |
| | reason | "detail mismatch: got \"species\", expected \"hair\"" |
|
| 81 | | parsed | | entry | "4419" | | detail | "species" | | explanation | "Species is not mentioned, so no violation." | | paragraph | 10 | | substring | "Maggie rapped her oak walking stick" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | inBounds | true | | expectedText | "her oak walking stick" | | locationAccurate | false |
| | closestExpected | | entry | "4419" | | detail | "walkingStick" | | summary | "Maggie carries a blackthorn stick per codex, but the passage says oak." |
| | reason | "detail mismatch: got \"species\", expected \"walkingStick\"" |
|
| 82 | | parsed | | entry | "4417" | | detail | "species" | | explanation | "Species is not mentioned, so no violation." | | paragraph | 11 | | substring | "Tomás, who had been quietly checking medical supplies" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 11]" | | inBounds | true | | expectedText | "His scarred right forearm" | | locationAccurate | false |
| | closestExpected | | entry | "4417" | | detail | "scar" | | summary | "Tomás has a scar on his left forearm per codex, but the passage says right forearm." |
| | reason | "detail mismatch: got \"species\", expected \"scar\"" |
|
| 83 | | parsed | | entry | "4416" | | detail | "species" | | explanation | "Detective Quinn is not mentioned, so no violation." | | paragraph | 14 | | substring | "Silas, who had been standing silently" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 84 | | parsed | | entry | "4413" | | detail | "species" | | explanation | "Species is not mentioned, so no violation." | | paragraph | 14 | | substring | "Silas, who had been standing silently" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 85 | | parsed | | entry | "4412" | | detail | "species" | | explanation | "Species is not mentioned, so no violation." | | paragraph | 13 | | substring | "Rory felt the Heartstone Pendant" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 86 | | parsed | | entry | "4424" | | detail | "species" | | explanation | "Matches codex, no violation." | | paragraph | 1 | | substring | "her three-hundred-year-old Half-Fae body" |
| | status | "false_positive" | | location | | extractedText | "her three-hundred-year-old Half-Fae body" | | inBounds | true | | expectedText | "Her pale blue eyes, unblinking" | | locationAccurate | false |
| | closestExpected | | entry | "4424" | | detail | "eyeColor" | | summary | "Isolde has pale lavender eyes per codex, but the passage says pale blue eyes." |
| | reason | "detail mismatch: got \"species\", expected \"eyeColor\"" |
|
| 87 | | parsed | | entry | "6001" | | detail | "identificationMark" | | explanation | "The identification mark is not mentioned, so no violation." | | paragraph | 10 | | substring | "If the Wardens' official stance is neutrality" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | inBounds | true | | expectedText | "The Wardens were founded in 1066" | | locationAccurate | false |
| | closestExpected | | entry | "6001" | | detail | "foundingYear" | | summary | "The Wardens were founded in 1215 per codex, but Maggie says 1066." |
| | reason | "detail mismatch: got \"identificationMark\", expected \"foundingYear\"" |
|
| 88 | | parsed | | entry | "6004" | | detail | "leader" | | explanation | "Matches codex (leader: Father Cormac), no violation." | | paragraph | 5 | | substring | "Father Cormac crossed himself" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 5]" | | inBounds | true | | expectedText | "our cathedral in Southwark" | | locationAccurate | false |
| | closestExpected | | entry | "6004" | | detail | "headquarters" | | summary | "The Parish Guard HQ is St. Brigid's in Islington per codex, but Cormac says Southwark." |
| | reason | "detail mismatch: got \"leader\", expected \"headquarters\"" |
|
| 89 | | parsed | | entry | "6005" | | detail | "employee" | | explanation | "The text doesn't mention her job, so no violation." | | paragraph | 13 | | substring | "Rory felt the Heartstone Pendant" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 90 | | parsed | | entry | "860" | | detail | "description" | | explanation | "Matches the description (discreet apothecary), no violation." | | paragraph | 7 | | substring | "probably from a supplier, not my shop" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 91 | | parsed | | entry | "856" | | detail | "description" | | explanation | "Matches the description (hidden supernatural black market), no violation." | | paragraph | 9 | | substring | "The market's under Camden this month" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "abandoned station under Shoreditch" | | locationAccurate | false |
| | closestExpected | | entry | "856" | | detail | "currentLocation" | | summary | "The Veil Market is under Camden per codex, but Wei-Lin says Shoreditch." |
| | reason | "detail mismatch: got \"description\", expected \"currentLocation\"" |
|
| 92 | | parsed | | entry | "858" | | detail | "description" | | explanation | "The description matches, no violation." | | paragraph | 4 | | substring | "Eva was beside her" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 4]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 93 | | parsed | | entry | "854" | | detail | "description" | | explanation | "The description matches, no violation." | | paragraph | 14 | | substring | "The group dispersed into the London evening" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 94 | | parsed | | entry | "853" | | detail | "description" | | explanation | "Matches the description of Dymas (gluttony, excess), but the agents are from Avaros in the text, so already noted as a violation." | | paragraph | 11 | | substring | "said Prince Belphegor's agents are kidnapping humans" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 11]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 95 | | parsed | | entry | "855" | | detail | "description" | | explanation | "Matches the description, no violation." | | paragraph | 6 | | substring | "Mammon breaks it daily in Avaros" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | inBounds | true | | expectedText | "Prince Belphegor's agents are kidnapping humans" | | locationAccurate | false |
| | closestExpected | | entry | "855" | | detail | "ruler" | | summary | "Avaros is Prince Mammon's realm per codex, but Tomás says Prince Belphegor's agents operate there." |
| | reason | "detail mismatch: got \"description\", expected \"ruler\"" |
|
| 96 | | parsed | | entry | "857" | | detail | "description" | | explanation | "Irath is described as a volcanic wasteland of perpetual war. The text doesn't contradict this." | | paragraph | 6 | | substring | "the Crimson Court's base of operations has shifted from Dymas to Irath" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 97 | | parsed | | entry | "859" | | detail | "description" | | explanation | "This is about the Fae Grove, not Somnia, so no violation." | | paragraph | 4 | | substring | "the grove's strange microclimate" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 4]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 98 | | parsed | | entry | "862" | | detail | "description" | | explanation | "Luxuria is described as a realm of illusions and desires, not dreamers. This might be a contradiction, but the text says the Somnian Cult serves Lilith, which is incorrect per the codex. The description of the garden doesn't match Luxuria's description. However, the codex doesn't explicitly say what Lilith's garden is, so I'll skip this as not a direct contradiction." | | paragraph | 4 | | substring | "Prince Lilith, demands more dreamers for her garden of sleeping souls" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 4]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 99 | | parsed | | entry | "2001" | | detail | "description" | | explanation | "The description matches, no violation." | | paragraph | 13 | | substring | "the crimson stone glowing brighter than she'd ever seen" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "the golden chain tangled in her fingers" | | locationAccurate | false |
| | closestExpected | | entry | "2001" | | detail | "chainMaterial" | | summary | "The Heartstone Pendant has a silver chain per codex, but the passage says golden chain." |
| | reason | "detail mismatch: got \"description\", expected \"chainMaterial\"" |
|
| 100 | | parsed | | entry | "2002" | | detail | "description" | | explanation | "The description matches, no violation." | | paragraph | 11 | | substring | "Her contract document" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 11]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 101 | | parsed | | entry | "2003" | | detail | "description" | | explanation | "The gauntlet is not mentioned, so no violation." | | paragraph | 11 | | substring | "I treated a Helbound soul last week" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 11]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 102 | | parsed | | entry | "2004" | | detail | "description" | | explanation | "The compass is not mentioned, so no violation." | | paragraph | 9 | | substring | "The market's under Camden this month" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 103 | | parsed | | entry | "2005" | | detail | "description" | | explanation | "The description says it induces a deep trance, but the text says it's modified to create dependency, which is a contradiction as noted." | | paragraph | 4 | | substring | "designed to create dependency" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 4]" | | inBounds | true | | expectedText | "little red glass vials" | | locationAccurate | false |
| | closestExpected | | entry | "2005" | | detail | "containerColor" | | summary | "Dream Dust is stored in cobalt-blue vials per codex, but Isolde says red glass vials." |
| | reason | "detail mismatch: got \"description\", expected \"containerColor\"" |
|
| 104 | | parsed | | entry | "2006" | | detail | "description" | | explanation | "The description matches, but the temperature is wrong, so already noted." | | paragraph | 2 | | substring | "the Fae-Forged Blade warm at her hip" |
| | status | "false_positive" | | location | | extractedText | "the Fae-Forged Blade warm at her hip" | | inBounds | true | | expectedText | "the Fae-Forged Blade warm at her hip" | | locationAccurate | true |
| | closestExpected | | entry | "2006" | | detail | "temperature" | | summary | "The Fae-Forged Blade is always cold per codex, but the passage says warm." |
| | reason | "detail mismatch: got \"description\", expected \"temperature\"" |
|
| 105 | | parsed | | entry | "7001" | | detail | "description" | | explanation | "The description matches, no violation." | | paragraph | 14 | | substring | "the Veil shimmered — thin as gossamer, and getting thinner by the hour" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 106 | | parsed | | entry | "7002" | | detail | "description" | | explanation | "The description matches, but the year is wrong, so already noted." | | paragraph | 5 | | substring | "The Covenant of Separation — the old treaty from 1066 — forbids this kind of direct interference" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 5]" | | inBounds | true | | expectedText | "the old treaty from 1066" | | locationAccurate | false |
| | closestExpected | | entry | "7002" | | detail | "signedYear" | | summary | "The Covenant of Separation was signed in 1215 per codex, but Cormac says 1066." |
| | reason | "detail mismatch: got \"description\", expected \"signedYear\"" |
|
| 107 | | parsed | | entry | "7003" | | detail | "description" | | explanation | "The description matches, no violation." | | paragraph | 12 | | substring | "Three new ones opened near underground water sources" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 12]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 108 | | parsed | | entry | "7004" | | detail | "description" | | explanation | "The description matches, no violation." | | paragraph | 11 | | substring | "I treated a Helbound soul last week" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 11]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 109 | | parsed | | entry | "7005" | | detail | "description" | | explanation | "The description matches, no violation." | | paragraph | 12 | | substring | "I treated a Helbound soul last week" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 12]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 110 | | parsed | | entry | "6001" | | detail | "description" | | explanation | "The description matches, but the year is wrong, so already noted." | | paragraph | 10 | | substring | "The Wardens were founded in 1066" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | inBounds | true | | expectedText | "The Wardens were founded in 1066" | | locationAccurate | false |
| | closestExpected | | entry | "6001" | | detail | "foundingYear" | | summary | "The Wardens were founded in 1215 per codex, but Maggie says 1066." |
| | reason | "detail mismatch: got \"description\", expected \"foundingYear\"" |
|
| 111 | | parsed | | entry | "6002" | | detail | "description" | | explanation | "The description matches, no violation." | | paragraph | 4 | | substring | "The Crimson Court stirs" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 4]" | | inBounds | true | | expectedText | "the Crimson Court's base of operations has shifted from Dymas to Irath" | | locationAccurate | false |
| | closestExpected | | entry | "6002" | | detail | "headquarters" | | summary | "The Crimson Court's headquarters is in Dymas per codex, but Lucien says their base has shifted to Irath." |
| | reason | "detail mismatch: got \"description\", expected \"headquarters\"" |
|
| 112 | | parsed | | entry | "6003" | | detail | "description" | | explanation | "The description matches, but the master is wrong, so already noted." | | paragraph | 4 | | substring | "Their master, Prince Lilith, demands more dreamers for her garden of sleeping souls" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 4]" | | inBounds | true | | expectedText | "Prince Lilith, demands more dreamers" | | locationAccurate | false |
| | closestExpected | | entry | "6003" | | detail | "master" | | summary | "The Somnian Cult serves Prince Asmodeus per codex, but Isolde says Prince Lilith." |
| | reason | "detail mismatch: got \"description\", expected \"master\"" |
|
| 113 | | parsed | | entry | "6004" | | detail | "description" | | explanation | "The description matches, no violation." | | paragraph | 5 | | substring | "The Parish Guard has seen it too" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 5]" | | inBounds | true | | expectedText | "our cathedral in Southwark" | | locationAccurate | false |
| | closestExpected | | entry | "6004" | | detail | "headquarters" | | summary | "The Parish Guard HQ is St. Brigid's in Islington per codex, but Cormac says Southwark." |
| | reason | "detail mismatch: got \"description\", expected \"headquarters\"" |
|
| 114 | | parsed | | entry | "6005" | | detail | "description" | | explanation | "The description matches, no violation." | | paragraph | 13 | | substring | "Aurora arrived first" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 115 | | parsed | | entry | "6006" | | detail | "description" | | explanation | "The description matches, no violation." | | paragraph | 9 | | substring | "Blackthorn Security has been mobilizing" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "the sword inside a circle" | | locationAccurate | false |
| | closestExpected | | entry | "6006" | | detail | "logo" | | summary | "Blackthorn Security's logo is a thorned branch inside a shield per codex, but Kai says a sword inside a circle." |
| | reason | "detail mismatch: got \"description\", expected \"logo\"" |
|
| 116 | | parsed | | entry | "4412" | | detail | "description" | | explanation | "The description matches, no violation." | | paragraph | 2 | | substring | "Aurora arrived first" |
| | status | "false_positive" | | location | | extractedText | "Aurora arrived first" | | inBounds | true | | expectedText | "" | | locationAccurate | true |
|
|
| 117 | | parsed | | entry | "4413" | | detail | "description" | | explanation | "The description matches, no violation." | | paragraph | 14 | | substring | "Silas, who had been standing silently" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 118 | | parsed | | entry | "4414" | | detail | "description" | | explanation | "The description matches, no violation." | | paragraph | 2 | | substring | "Eva was beside her" |
| | status | "false_positive" | | location | | extractedText | "Eva was beside her" | | inBounds | true | | expectedText | "Her square glasses kept fogging" | | locationAccurate | false |
| | closestExpected | | entry | "4414" | | detail | "glasses" | | summary | "Eva wears round glasses per codex, but the passage says square glasses." |
| | reason | "detail mismatch: got \"description\", expected \"glasses\"" |
|
| 119 | | parsed | | entry | "862" | | detail | "skyColor" | | explanation | "" | | paragraph | 4 | | substring | "Prince Lilith, demands more dreamers for her garden of sleeping souls" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 4]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|