| 0 | | parsed | | entry | "4424" | | detail | "eyeColor" | | explanation | "The codex states Isolde has pale lavender eyes, not pale blue." | | 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 |
|
|
| 1 | | parsed | | entry | "4424" | | detail | "hair" | | explanation | "The codex states Isolde has silver hair reaching her waist, not waist-length silver hair (this is actually consistent, so no violation here)." | | 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 \"hair\", expected \"eyeColor\"" |
|
| 2 | | parsed | | entry | "4424" | | detail | "footprints" | | explanation | "The codex states Isolde leaves no footprints when she walks, but the text describes her leaving clear prints." | | paragraph | 4 | | substring | "her bare feet leaving clear prints in the soft earth as she paced the circle" |
| | 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 |
|
|
| 3 | | parsed | | entry | "4424" | | detail | "eyeColor" | | explanation | "The codex states Isolde has pale lavender eyes, not pale blue." | | paragraph | 4 | | substring | "Her pale blue eyes, unblinking" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 4]" | | inBounds | true | | expectedText | "her pale blue eyes widening" | | locationAccurate | false |
| | closestExpected | | entry | "4424" | | detail | "eyeColor" | | summary | "Isolde has pale lavender eyes per codex, but the passage again says pale blue eyes in a later paragraph." |
| | reason | "paragraph mismatch, reported 4, expected 13" |
|
| 4 | | parsed | | entry | "4421" | | detail | "tattoo" | | explanation | "The codex states Yasmin has a flame serpent tattoo coiling up her left arm, not right arm." | | paragraph | 8 | | substring | "The flame serpent tattoo on her right arm seemed to writhe" |
| | 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 8]" | | inBounds | true | | expectedText | "tattoo on her right arm" | | locationAccurate | false |
|
|
| 5 | | parsed | | entry | "4423" | | detail | "tattoo" | | explanation | "The codex states Wei-Lin has a dragon tattoo covering his entire back, not on his chest." | | paragraph | 9 | | substring | "The edge of the dragon tattoo on his chest was visible" |
| | 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 9]" | | inBounds | true | | expectedText | "the dragon tattoo on his chest" | | locationAccurate | false |
|
|
| 6 | | parsed | | entry | "4420" | | detail | "hair" | | explanation | "The codex states Kai has dyed electric-blue hair in an undercut, not natural black hair." | | paragraph | 10 | | substring | "his natural black hair falling into his face" |
| | 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 10]" | | inBounds | true | | expectedText | "his natural black hair falling into his face" | | locationAccurate | false |
|
|
| 7 | | parsed | | entry | "6006" | | detail | "logo" | | explanation | "The codex states Blackthorn's logo is a thorned branch inside a shield, not a sword inside a circle." | | paragraph | 11 | | substring | "Their logo — 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 11]" | | inBounds | true | | expectedText | "the sword inside a circle" | | locationAccurate | false |
|
|
| 8 | | parsed | | entry | "6001" | | detail | "foundingYear" | | explanation | "The codex states the Wardens were founded in 1215, not 1066." | | paragraph | 12 | | 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 12]" | | inBounds | true | | expectedText | "The Wardens were founded in 1066" | | locationAccurate | false |
|
|
| 9 | | parsed | | entry | "4417" | | detail | "scar" | | explanation | "The codex states Tomás has a scar running along his left forearm, not right forearm." | | paragraph | 14 | | 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 14]" | | inBounds | true | | expectedText | "His scarred right forearm" | | locationAccurate | false |
|
|
| 10 | | parsed | | entry | "4417" | | detail | "birthplace" | | explanation | "The codex states Tomás was born in Seville, Spain, not Madrid." | | paragraph | 14 | | substring | "His Madrid accent thickened" |
| | 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 14]" | | inBounds | true | | expectedText | "His Madrid accent" | | locationAccurate | false |
|
|
| 11 | | parsed | | entry | "4418" | | detail | "eyeColor" | | explanation | "The codex states Nyx has faintly glowing violet eyes, not blue." | | paragraph | 16 | | 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 16]" | | inBounds | true | | expectedText | "their glowing blue eyes" | | locationAccurate | false |
|
|
| 12 | | parsed | | entry | "4419" | | detail | "eyeColor" | | explanation | "The codex states Maggie has sharp grey eyes, not green." | | paragraph | 18 | | 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 18]" | | inBounds | true | | expectedText | "Her keen green eyes" | | locationAccurate | false |
|
|
| 13 | | parsed | | entry | "4413" | | detail | "eyeColor" | | explanation | "This is consistent with the codex, so no violation." | | paragraph | 19 | | substring | "His hazel eyes were grave" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "Her pale blue eyes, unblinking" | | locationAccurate | (null) |
| | closestExpected | | entry | "4424" | | detail | "eyeColor" | | summary | "Isolde has pale lavender eyes per codex, but the passage says pale blue eyes." |
| | reason | "entry mismatch: got \"4413\", expected \"4424\"" |
|
| 14 | | parsed | | entry | "4413" | | detail | "limp" | | explanation | "The codex states Silas has a slight limp in his left leg from an old knee injury, which is consistent." | | paragraph | 19 | | substring | "He rubbed his left knee — the old injury" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "" | | locationAccurate | (null) |
|
|
| 15 | | parsed | | entry | "2006" | | detail | "material" | | explanation | "The codex states the Fae-Forged Blade is made of moonsilver, but the text doesn't specify the material, so no violation." | | paragraph | 22 | | substring | "She gripped the Fae-Forged Blade" |
| | status | "true_positive" | | matchedExpected | | entry | "2006" | | detail | "material" | | summary | "Fae-Forged Blades are moonsilver per codex, but Wei-Lin says bronze." |
| | location | | extractedText | (null) | | inBounds | false | | expectedText | "bronze daggers, they say" | | locationAccurate | (null) |
|
|
| 16 | | parsed | | entry | "4412" | | detail | "hair" | | explanation | "The codex states Aurora has straight shoulder-length black hair, but this isn't mentioned in the text, so no violation." | | paragraph | 22 | | substring | "She gripped the Fae-Forged Blade" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "his natural black hair falling into his face" | | locationAccurate | (null) |
| | closestExpected | | entry | "4420" | | detail | "hair" | | summary | "Kai has dyed electric-blue hair per codex, but the passage says natural black hair." |
| | reason | "entry mismatch: got \"4412\", expected \"4420\"" |
|
| 17 | | parsed | | entry | "4412" | | detail | "scar" | | explanation | "The codex states Aurora has a small crescent-shaped scar on her left wrist, but this isn't mentioned in the text, so no violation." | | paragraph | 22 | | substring | "She gripped the Fae-Forged Blade" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "His scarred right forearm" | | locationAccurate | (null) |
| | closestExpected | | entry | "4417" | | detail | "scar" | | summary | "Tomás has a scar on his left forearm per codex, but the passage says right forearm." |
| | reason | "entry mismatch: got \"4412\", expected \"4417\"" |
|
| 18 | | parsed | | entry | "4412" | | detail | "eyeColor" | | explanation | "The codex states Aurora has bright blue eyes, but this isn't mentioned in the text, so no violation." | | paragraph | 22 | | substring | "She gripped the Fae-Forged Blade" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "Her pale blue eyes, unblinking" | | locationAccurate | (null) |
| | 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\"" |
|
| 19 | | parsed | | entry | "2001" | | detail | "chainMaterial" | | explanation | "The codex states the Heartstone Pendant has a silver chain, not golden." | | paragraph | 23 | | 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 | (null) | | inBounds | false | | expectedText | "the golden chain tangled in her fingers" | | locationAccurate | (null) |
|
|
| 20 | | parsed | | entry | "2001" | | detail | "gemstoneColor" | | explanation | "The codex states the Heartstone Pendant has a deep crimson gemstone, which is consistent with crimson." | | paragraph | 23 | | substring | "the crimson stone glowing brighter" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "the golden chain tangled in her fingers" | | locationAccurate | (null) |
| | 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\"" |
|
| 21 | | parsed | | entry | "2001" | | detail | "origin" | | explanation | "The codex states the Heartstone Pendant's origin is Dymas, not Avaros." | | paragraph | 24 | | substring | "The Heartstone was forged in Avaros" |
| | status | "true_positive" | | matchedExpected | | entry | "2001" | | detail | "origin" | | summary | "The Heartstone Pendant was forged in Dymas per codex, but Isolde says it was forged in Avaros." |
| | location | | extractedText | (null) | | inBounds | false | | expectedText | "The Heartstone was forged in Avaros" | | locationAccurate | (null) |
|
|
| 22 | | parsed | | entry | "7002" | | detail | "signedYear" | | explanation | "The codex states the Covenant of Separation was signed in 1215, not 1066." | | paragraph | 6 | | substring | "The Covenant of Separation — 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 6]" | | inBounds | true | | expectedText | "the old treaty from 1066" | | locationAccurate | false |
|
|
| 23 | | parsed | | entry | "7003" | | detail | "formation" | | explanation | "This is consistent with the codex, so no violation." | | paragraph | 17 | | substring | "Three new ones opened near underground water sources" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 17]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 24 | | parsed | | entry | "6005" | | detail | "role" | | explanation | "The codex states Yu-Fei Cheung's restaurant is a neutral meeting ground for supernatural factions, but this isn't contradicted in the text." | | paragraph | 9 | | substring | "probably from a supplier, not my shop" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 25 | | parsed | | entry | "856" | | detail | "currentLocation" | | explanation | "The codex states the Veil Market is currently in an abandoned Tube station beneath Camden, not Shoreditch." | | paragraph | 9 | | substring | "The market's moved to an 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 9]" | | inBounds | true | | expectedText | "abandoned station under Shoreditch" | | locationAccurate | false |
|
|
| 26 | | parsed | | entry | "7004" | | detail | "freedom" | | explanation | "The codex states contracts can only be freed if destroyed within the realm where signed, and since this was signed in Avaros, this is consistent." | | paragraph | 14 | | substring | "She managed to destroy her contract document while still in Avaros, which broke the bond" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 27 | | parsed | | entry | "7004" | | detail | "sealingMethod" | | explanation | "The codex states contracts are sealed by blood and recorded in that Prince's domain, but this isn't contradicted in the text." | | paragraph | 14 | | substring | "She'd escaped from a contract signed in Avaros" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 28 | | parsed | | entry | "7005" | | detail | "requirement" | | explanation | "The codex states becoming a Shade requires being caught between realms during a failed summoning or portal collapse, which is consistent with walking shadow paths." | | paragraph | 16 | | substring | "I walked the shadow paths last night" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 16]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 29 | | parsed | | entry | "7005" | | detail | "physicalLoss" | | explanation | "The codex states the transformation strips the subject of their physical body permanently, which is consistent with being a being of living shadow." | | paragraph | 16 | | substring | "I walked the shadow paths last night" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 16]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 30 | | parsed | | entry | "7005" | | detail | "lostSenses" | | explanation | "The codex states Shades lose ability to taste, smell, or feel physical sensations, which is consistent with being a being of living shadow." | | paragraph | 16 | | substring | "I walked the shadow paths last night" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 16]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 31 | | parsed | | entry | "7005" | | detail | "reversibility" | | explanation | "The codex states the transformation is irreversible, which is consistent with Nyx being a permanent Shade." | | paragraph | 16 | | substring | "I walked the shadow paths last night" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 16]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 32 | | parsed | | entry | "4416" | | detail | "eyeColor" | | explanation | "The codex states Detective Quinn has brown eyes, but this describes Father Cormac, who has pale blue eyes according to the codex." | | paragraph | 6 | | substring | "his dark brown eyes troubled" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | 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\"" |
|
| 33 | | parsed | | entry | "4422" | | detail | "eyeColor" | | explanation | "The codex states Father Cormac has pale blue eyes, not dark brown." | | paragraph | 6 | | substring | "his dark brown eyes troubled" |
| | 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 6]" | | inBounds | true | | expectedText | "his dark brown eyes troubled" | | locationAccurate | false |
|
|
| 34 | | parsed | | entry | "4422" | | detail | "hair" | | explanation | "The codex states Father Cormac has thinning ginger hair, which is consistent." | | paragraph | 6 | | substring | "his thinning ginger hair" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | 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 \"hair\", expected \"eyeColor\"" |
|
| 35 | | parsed | | entry | "4422" | | detail | "rosary" | | explanation | "The codex states Father Cormac has a rosary made of rowan wood beads, not cedar." | | paragraph | 6 | | substring | "He gripped his cedar rosary beads tightly" |
| | 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 6]" | | inBounds | true | | expectedText | "his cedar rosary beads" | | locationAccurate | false |
|
|
| 36 | | parsed | | entry | "4422" | | detail | "collar" | | explanation | "The codex states Father Cormac wears a clerical collar at all times, but this isn't mentioned in the text." | | paragraph | 6 | | substring | "He gripped his cedar rosary beads tightly" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | 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\"" |
|
| 37 | | parsed | | entry | "4415" | | detail | "eyeColor" | | explanation | "The codex states Lucien has heterochromatic eyes — one amber, one black, not both amber." | | paragraph | 7 | | substring | "Both his amber eyes were fixed" |
| | 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 7]" | | inBounds | true | | expectedText | "Both his amber eyes were fixed" | | locationAccurate | false |
|
|
| 38 | | parsed | | entry | "4415" | | detail | "hair" | | explanation | "The codex states Lucien has slicked-back platinum blond hair, but this isn't mentioned in the text." | | paragraph | 7 | | substring | "adjusting the cuff of his charcoal suit" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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 \"hair\", expected \"cane\"" |
|
| 39 | | parsed | | entry | "4415" | | detail | "cane" | | explanation | "The codex states Lucien has an ivory-handled cane that conceals a thin blade, not mahogany." | | paragraph | 7 | | substring | "leaning on 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 7]" | | inBounds | true | | expectedText | "leaning on his mahogany cane" | | locationAccurate | false |
|
|
| 40 | | parsed | | entry | "4415" | | detail | "dress" | | explanation | "The codex states Lucien wears tailored charcoal suits, which is consistent." | | paragraph | 7 | | substring | "adjusting the cuff of his charcoal suit" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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\"" |
|
| 41 | | parsed | | entry | "4414" | | detail | "hair" | | explanation | "The codex states Eva has curly red hair, which is consistent." | | paragraph | 2 | | substring | "her curly red hair escaping from under a wool hat" |
| | status | "false_positive" | | location | | extractedText | "her curly red hair escaping from under a wool hat" | | 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\"" |
|
| 42 | | parsed | | entry | "4414" | | detail | "glasses" | | explanation | "The codex states Eva wears round glasses, not square." | | paragraph | 2 | | substring | "Her square glasses kept fogging" |
| | 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 kept fogging" | | inBounds | true | | expectedText | "Her square glasses kept fogging" | | locationAccurate | true |
|
|
| 43 | | parsed | | entry | "4414" | | detail | "satchel" | | explanation | "The codex states Eva has a worn leather satchel full of books, which is consistent." | | 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\"" |
|
| 44 | | parsed | | entry | "4414" | | detail | "nervousHabit" | | explanation | "The codex states Eva's nervous habit is tucking hair behind her left ear, not clutching her satchel." | | 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 \"nervousHabit\", expected \"glasses\"" |
|
| 45 | | parsed | | entry | "4414" | | detail | "freckles" | | explanation | "The codex states Eva has a freckled complexion, but this isn't mentioned in the text." | | paragraph | 2 | | substring | "her curly red hair escaping from under a wool hat" |
| | status | "false_positive" | | location | | extractedText | "her curly red hair escaping from under a wool hat" | | 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 \"freckles\", expected \"glasses\"" |
|
| 46 | | parsed | | entry | "4412" | | detail | "hair" | | explanation | "The codex states Aurora has straight shoulder-length black hair, but this isn't mentioned in the text." | | paragraph | 1 | | substring | "Aurora arrived first, the Fae-Forged Blade warm at her hip" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 1]" | | 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 | "entry mismatch: got \"4412\", expected \"4420\"" |
|
| 47 | | parsed | | entry | "4412" | | detail | "scar" | | explanation | "The codex states Aurora has a small crescent-shaped scar on her left wrist, but this isn't mentioned in the text." | | paragraph | 1 | | substring | "Aurora arrived first, the Fae-Forged Blade warm at her hip" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 1]" | | 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 | "entry mismatch: got \"4412\", expected \"4417\"" |
|
| 48 | | parsed | | entry | "4412" | | detail | "eyeColor" | | explanation | "The codex states Aurora has bright blue eyes, but this isn't mentioned in the text." | | paragraph | 1 | | substring | "Aurora arrived first, the Fae-Forged Blade warm at her hip" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 1]" | | 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\"" |
|
| 49 | | parsed | | entry | "4412" | | detail | "height" | | explanation | "The codex states Aurora is 5'6\" tall, but this isn't mentioned in the text." | | paragraph | 1 | | substring | "Aurora arrived first, the Fae-Forged Blade warm at her hip" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 1]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 50 | | parsed | | entry | "4412" | | detail | "age" | | explanation | "The codex states Aurora is 25 years old, but this isn't mentioned in the text." | | paragraph | 1 | | substring | "Aurora arrived first, the Fae-Forged Blade warm at her hip" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 1]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 51 | | parsed | | entry | "4412" | | detail | "description" | | explanation | "The codex describes Aurora as cool-headed, intelligent, and known for quick out-of-the-box thinking, but this isn't mentioned in the text." | | paragraph | 1 | | substring | "Aurora arrived first, the Fae-Forged Blade warm at her hip" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 1]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 52 | | parsed | | entry | "4413" | | detail | "hair" | | explanation | "The codex states Silas has grey-streaked auburn hair, but this isn't mentioned in the text." | | paragraph | 19 | | substring | "His hazel eyes were grave" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "his natural black hair falling into his face" | | locationAccurate | (null) |
| | closestExpected | | entry | "4420" | | detail | "hair" | | summary | "Kai has dyed electric-blue hair per codex, but the passage says natural black hair." |
| | reason | "entry mismatch: got \"4413\", expected \"4420\"" |
|
| 53 | | parsed | | entry | "4413" | | detail | "beard" | | explanation | "The codex states Silas has a neatly trimmed beard matching his grey-streaked auburn hair, but this isn't mentioned in the text." | | paragraph | 19 | | substring | "His hazel eyes were grave" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "" | | locationAccurate | (null) |
|
|
| 54 | | parsed | | entry | "4413" | | detail | "height" | | explanation | "The codex states Silas is 6'1\" tall, but this isn't mentioned in the text." | | paragraph | 19 | | substring | "His hazel eyes were grave" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "" | | locationAccurate | (null) |
|
|
| 55 | | parsed | | entry | "4413" | | detail | "age" | | explanation | "The codex states Silas is 58 years old, but this isn't mentioned in the text." | | paragraph | 19 | | substring | "His hazel eyes were grave" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "" | | locationAccurate | (null) |
|
|
| 56 | | parsed | | entry | "4413" | | detail | "signetRing" | | explanation | "The codex states Silas wears a silver signet ring on his right hand, but this isn't mentioned in the text." | | paragraph | 19 | | substring | "His hazel eyes were grave" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "" | | locationAccurate | (null) |
|
|
| 57 | | parsed | | entry | "4413" | | detail | "description" | | explanation | "The codex describes Silas as a retired intelligence operative turned bar owner who carries himself with quiet authority, but this isn't mentioned in the text." | | paragraph | 19 | | substring | "His hazel eyes were grave" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "" | | locationAccurate | (null) |
|
|
| 58 | | parsed | | entry | "4413" | | detail | "backstory" | | explanation | "The codex states Silas was a former MI6 field agent who retired after a botched operation in Prague left him with a permanent knee injury, but this isn't mentioned in the text." | | paragraph | 19 | | substring | "His hazel eyes were grave" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "" | | locationAccurate | (null) |
|
|
| 59 | | parsed | | entry | "4414" | | detail | "height" | | explanation | "The codex states Eva is 5'4\" tall, but this isn't mentioned in the text." | | paragraph | 2 | | substring | "Eva was beside her, clutching her leather satchel with both hands" |
| | status | "false_positive" | | location | | extractedText | "Eva was beside her, 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 \"height\", expected \"glasses\"" |
|
| 60 | | parsed | | entry | "4414" | | detail | "age" | | explanation | "The codex states Eva is 26 years old, but this isn't mentioned in the text." | | paragraph | 2 | | substring | "Eva was beside her, clutching her leather satchel with both hands" |
| | status | "false_positive" | | location | | extractedText | "Eva was beside her, 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 \"age\", expected \"glasses\"" |
|
| 61 | | parsed | | entry | "4414" | | detail | "description" | | explanation | "The codex describes Eva as Aurora's childhood friend and an occult researcher, but this isn't mentioned in the text." | | paragraph | 2 | | substring | "Eva was beside her, clutching her leather satchel with both hands" |
| | status | "false_positive" | | location | | extractedText | "Eva was beside her, 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 \"description\", expected \"glasses\"" |
|
| 62 | | parsed | | entry | "4414" | | detail | "backstory" | | explanation | "The codex states Eva moved to London two years before Aurora and works as a research assistant at the British Museum's restricted archives, but this isn't mentioned in the text." | | paragraph | 2 | | substring | "Eva was beside her, clutching her leather satchel with both hands" |
| | status | "false_positive" | | location | | extractedText | "Eva was beside her, 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 \"backstory\", expected \"glasses\"" |
|
| 63 | | parsed | | entry | "4415" | | detail | "height" | | explanation | "The codex states Lucien is 5'11\" tall, but this isn't mentioned in the text." | | paragraph | 7 | | substring | "Lucien drawled, leaning on his mahogany cane" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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 \"height\", expected \"cane\"" |
|
| 64 | | parsed | | entry | "4415" | | detail | "age" | | explanation | "The codex states Lucien is 32 years old, but this isn't mentioned in the text." | | paragraph | 7 | | substring | "Lucien drawled, leaning on his mahogany cane" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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 \"age\", expected \"cane\"" |
|
| 65 | | parsed | | entry | "4415" | | detail | "description" | | explanation | "The codex describes Lucien as an impeccably dressed fixer and information broker in London's supernatural underworld who speaks four languages fluently, but this isn't mentioned in the text." | | paragraph | 7 | | substring | "Lucien drawled, leaning on his mahogany cane" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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 \"description\", expected \"cane\"" |
|
| 66 | | parsed | | entry | "4415" | | detail | "backstory" | | explanation | "The codex states Lucien was born in Marseille to a human mother and a demon father from the realm of Avaros, but this isn't mentioned in the text." | | paragraph | 7 | | substring | "Lucien drawled, leaning on his mahogany cane" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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 \"backstory\", expected \"cane\"" |
|
| 67 | | parsed | | entry | "4416" | | detail | "height" | | explanation | "The codex states Detective Quinn is 5'9\" tall, but this describes Father Cormac, who is 5'8\" according to the codex." | | paragraph | 6 | | substring | "Father Cormac crossed himself" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 68 | | parsed | | entry | "4416" | | detail | "age" | | explanation | "The codex states Detective Quinn is 41 years old, but this describes Father Cormac, who is 55 according to the codex." | | paragraph | 6 | | substring | "Father Cormac crossed himself" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 69 | | parsed | | entry | "4416" | | detail | "description" | | explanation | "The codex describes Detective Quinn as a Metropolitan Police detective with 18 years of decorated service who suspects the clique is involved in criminal activity, but this isn't mentioned in the text." | | paragraph | 6 | | substring | "Father Cormac crossed himself" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 70 | | parsed | | entry | "4416" | | detail | "backstory" | | explanation | "The codex states Detective Quinn lost her partner, DS Morris, during a case three years ago under unexplained circumstances that had supernatural origins she doesn't yet understand, but this isn't mentioned in the text." | | paragraph | 6 | | substring | "Father Cormac crossed himself" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 71 | | parsed | | entry | "4417" | | detail | "height" | | explanation | "The codex states Tomás is 5'10\" tall, but this isn't mentioned in the text." | | paragraph | 14 | | substring | "Tomás, who had been quietly checking medical supplies in his bag, looked up" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | 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 \"height\", expected \"scar\"" |
|
| 72 | | parsed | | entry | "4417" | | detail | "age" | | explanation | "The codex states Tomás is 29 years old, but this isn't mentioned in the text." | | paragraph | 14 | | substring | "Tomás, who had been quietly checking medical supplies in his bag, looked up" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | 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 \"age\", expected \"scar\"" |
|
| 73 | | parsed | | entry | "4417" | | detail | "description" | | explanation | "The codex describes Tomás as a former paramedic who provides off-the-books medical care for the clique, but this isn't mentioned in the text." | | paragraph | 14 | | substring | "Tomás, who had been quietly checking medical supplies in his bag, looked up" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | 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 \"description\", expected \"scar\"" |
|
| 74 | | parsed | | entry | "4417" | | detail | "backstory" | | explanation | "The codex states Tomás was born in Seville, Spain, and moved to London to work for the NHS but lost his license after administering unauthorized treatments to supernatural patients, but this isn't mentioned in the text." | | paragraph | 14 | | substring | "Tomás, who had been quietly checking medical supplies in his bag, looked up" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | 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 \"backstory\", expected \"scar\"" |
|
| 75 | | parsed | | entry | "4418" | | detail | "height" | | explanation | "The codex states Nyx is approximately 6'2\" in solid form, but this isn't mentioned in the text." | | paragraph | 16 | | substring | "Nyx materialized from the shadow of a standing stone" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 16]" | | 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 \"height\", expected \"eyeColor\"" |
|
| 76 | | parsed | | entry | "4418" | | detail | "description" | | explanation | "The codex describes Nyx as a being of living shadow, existing between the mortal plane and the spaces between realms, but this isn't mentioned in the text." | | paragraph | 16 | | substring | "Nyx materialized from the shadow of a standing stone" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 16]" | | 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 \"description\", expected \"eyeColor\"" |
|
| 77 | | parsed | | entry | "4418" | | detail | "backstory" | | explanation | "The codex states Nyx was once a human sorcerer named Aldric who became trapped between realms during a failed summoning ritual in 1643, but this isn't mentioned in the text." | | paragraph | 16 | | substring | "Nyx materialized from the shadow of a standing stone" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 16]" | | 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 \"backstory\", expected \"eyeColor\"" |
|
| 78 | | parsed | | entry | "4419" | | detail | "height" | | explanation | "The codex states Maggie is 5'2\" tall, but this isn't mentioned in the text." | | paragraph | 18 | | substring | "Maggie rapped her oak walking stick against a stone" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 18]" | | 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 \"height\", expected \"walkingStick\"" |
|
| 79 | | parsed | | entry | "4419" | | detail | "age" | | explanation | "The codex states Maggie is 72 years old, but this isn't mentioned in the text." | | paragraph | 18 | | substring | "Maggie rapped her oak walking stick against a stone" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 18]" | | 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 \"age\", expected \"walkingStick\"" |
|
| 80 | | parsed | | entry | "4419" | | detail | "description" | | explanation | "The codex describes Maggie as a retired librarian turned unofficial consultant for the clique on historical and occult matters, but this isn't mentioned in the text." | | paragraph | 18 | | substring | "Maggie rapped her oak walking stick against a stone" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 18]" | | 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 \"description\", expected \"walkingStick\"" |
|
| 81 | | parsed | | entry | "4419" | | detail | "backstory" | | explanation | "The codex states Maggie was former head librarian at the Bodleian Library in Oxford and is a widow whose late husband was a Warden, but this isn't mentioned in the text." | | paragraph | 18 | | substring | "Maggie rapped her oak walking stick against a stone" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 18]" | | 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 \"backstory\", expected \"walkingStick\"" |
|
| 82 | | parsed | | entry | "4420" | | detail | "height" | | explanation | "The codex states Kai is 5'7\" tall, but this isn't mentioned in the text." | | paragraph | 10 | | substring | "Kai corrected from behind his laptop screen" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | 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 \"height\", expected \"hair\"" |
|
| 83 | | parsed | | entry | "4420" | | detail | "age" | | explanation | "The codex states Kai is 22 years old, but this isn't mentioned in the text." | | paragraph | 10 | | substring | "Kai corrected from behind his laptop screen" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | 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 \"age\", expected \"hair\"" |
|
| 84 | | parsed | | entry | "4420" | | detail | "description" | | explanation | "The codex describes Kai as a Japanese-British self-taught tech prodigy who provides the clique with surveillance tools and digital forensics, but this isn't mentioned in the text." | | paragraph | 10 | | substring | "Kai corrected from behind his laptop screen" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | 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 \"description\", expected \"hair\"" |
|
| 85 | | parsed | | entry | "4420" | | detail | "backstory" | | explanation | "The codex states Kai dropped out of Imperial College London after his first year and lives in a converted shipping container in Hackney Wick, but this isn't mentioned in the text." | | paragraph | 10 | | substring | "Kai corrected from behind his laptop screen" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | 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 \"backstory\", expected \"hair\"" |
|
| 86 | | parsed | | entry | "4421" | | detail | "height" | | explanation | "The codex states Yasmin is 5'8\" tall, but this isn't mentioned in the text." | | paragraph | 8 | | substring | "Yasmin uncorked a small vial and sniffed its contents" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | 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 \"height\", expected \"tattoo\"" |
|
| 87 | | parsed | | entry | "4421" | | detail | "age" | | explanation | "The codex states Yasmin is 34 years old, but this isn't mentioned in the text." | | paragraph | 8 | | substring | "Yasmin uncorked a small vial and sniffed its contents" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | 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 \"age\", expected \"tattoo\"" |
|
| 88 | | parsed | | entry | "4421" | | detail | "description" | | explanation | "The codex describes Yasmin as an alchemist who runs a discreet apothecary in Brixton, selling both mundane herbal remedies and supernatural tinctures, but this isn't mentioned in the text." | | paragraph | 8 | | substring | "Yasmin uncorked a small vial and sniffed its contents" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | 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 \"description\", expected \"tattoo\"" |
|
| 89 | | parsed | | entry | "4421" | | detail | "backstory" | | explanation | "The codex states Yasmin is descended from a line of Djinn-touched humans from Marrakech and trained by her grandmother, but this isn't mentioned in the text." | | paragraph | 8 | | substring | "Yasmin uncorked a small vial and sniffed its contents" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | 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 \"backstory\", expected \"tattoo\"" |
|
| 90 | | parsed | | entry | "4422" | | detail | "height" | | explanation | "The codex states Father Cormac is 5'8\" tall, but this isn't mentioned in the text." | | paragraph | 6 | | substring | "Father Cormac crossed himself" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | 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 \"height\", expected \"eyeColor\"" |
|
| 91 | | parsed | | entry | "4422" | | detail | "age" | | explanation | "The codex states Father Cormac is 55 years old, but this isn't mentioned in the text." | | paragraph | 6 | | substring | "Father Cormac crossed himself" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | 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 \"age\", expected \"eyeColor\"" |
|
| 92 | | parsed | | entry | "4422" | | detail | "description" | | explanation | "The codex describes Father Cormac as an Irish Catholic priest assigned to St. Brigid's parish in Islington who secretly assists the clique with blessings and wards, but this isn't mentioned in the text." | | paragraph | 6 | | substring | "Father Cormac crossed himself" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | 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 \"description\", expected \"eyeColor\"" |
|
| 93 | | parsed | | entry | "4422" | | detail | "backstory" | | explanation | "The codex states Father Cormac witnessed a demonic incursion at his seminary in Cork twenty years ago that the Church covered up, but this isn't mentioned in the text." | | paragraph | 6 | | substring | "Father Cormac crossed himself" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | 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 \"backstory\", expected \"eyeColor\"" |
|
| 94 | | parsed | | entry | "4423" | | detail | "height" | | explanation | "The codex states Wei-Lin is 5'9\" tall, but this isn't mentioned in the text." | | paragraph | 9 | | substring | "Wei-Lin, leaning against one of the standing stones with his arms folded, grunted in agreement" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | 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 \"height\", expected \"tattoo\"" |
|
| 95 | | parsed | | entry | "4423" | | detail | "age" | | explanation | "The codex states Wei-Lin is 48 years old, but this isn't mentioned in the text." | | paragraph | 9 | | substring | "Wei-Lin, leaning against one of the standing stones with his arms folded, grunted in agreement" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | 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 \"age\", expected \"tattoo\"" |
|
| 96 | | parsed | | entry | "4423" | | detail | "description" | | explanation | "The codex describes Wei-Lin as a former Triad enforcer turned noodle shop owner who trades information with Silas, but this isn't mentioned in the text." | | paragraph | 9 | | substring | "Wei-Lin, leaning against one of the standing stones with his arms folded, grunted in agreement" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | 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 \"description\", expected \"tattoo\"" |
|
| 97 | | parsed | | entry | "4423" | | detail | "backstory" | | explanation | "The codex states Wei-Lin retired from organized crime after a near-death experience involving a Hel portal in Hong Kong and now runs \"Zhou's Golden Dragon\" in Chinatown, but this isn't mentioned in the text." | | paragraph | 9 | | substring | "Wei-Lin, leaning against one of the standing stones with his arms folded, grunted in agreement" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | 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 \"backstory\", expected \"tattoo\"" |
|
| 98 | | parsed | | entry | "853" | | detail | "ruler" | | explanation | "The codex states Dymas is ruled by Prince Belphegor, not Prince Lilith." | | 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 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\"" |
|
| 99 | | parsed | | entry | "854" | | detail | "signColor" | | explanation | "The codex states The Raven's Nest has a distinctive green neon sign above the entrance, but this isn't mentioned in the text." | | paragraph | 19 | | substring | "Silas, who had been standing silently at the edge of the grove, spoke at last" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "" | | locationAccurate | (null) |
|
|
| 100 | | parsed | | entry | "854" | | detail | "secretRoom" | | explanation | "The codex states The Raven's Nest has a hidden back room accessible through a bookshelf used for clandestine meetings, but this isn't mentioned in the text." | | paragraph | 19 | | substring | "Silas, who had been standing silently at the edge of the grove, spoke at last" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "" | | locationAccurate | (null) |
|
|
| 101 | | parsed | | entry | "854" | | detail | "description" | | explanation | "The codex describes The Raven's Nest as a dimly lit bar in Soho, London with walls covered with old maps and black-and-white photographs, but this isn't mentioned in the text." | | paragraph | 19 | | substring | "Silas, who had been standing silently at the edge of the grove, spoke at last" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "" | | locationAccurate | (null) |
|
|
| 102 | | parsed | | entry | "855" | | detail | "ruler" | | explanation | "The codex states Avaros is ruled by Prince Mammon, which is consistent." | | paragraph | 7 | | substring | "Mammon breaks it daily in Avaros" |
| | 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 7]" | | inBounds | true | | expectedText | "Prince Belphegor's agents are kidnapping humans" | | locationAccurate | false |
|
|
| 103 | | parsed | | entry | "855" | | detail | "skyColor" | | explanation | "The codex states Avaros has a sickly gold sky, but this isn't mentioned in the text." | | paragraph | 7 | | substring | "Mammon breaks it daily in Avaros" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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 \"skyColor\", expected \"ruler\"" |
|
| 104 | | parsed | | entry | "855" | | detail | "description" | | explanation | "The codex describes Avaros as a landscape of towering vaults and endless treasure halls with streets paved with fool's gold and air smelling of copper, but this isn't mentioned in the text." | | paragraph | 7 | | substring | "Mammon breaks it daily in Avaros" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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\"" |
|
| 105 | | parsed | | entry | "856" | | detail | "currentLocation" | | explanation | "The codex states the Veil Market is currently in an abandoned Tube station beneath Camden, not Shoreditch." | | paragraph | 9 | | substring | "I've heard whispers in Chinatown. Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards. The market's moved to an abandoned station under Shoreditch for this lunar cycle" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 106 | | parsed | | entry | "856" | | detail | "entryRequirement" | | explanation | "The codex states the Veil Market requires a bone token for entry, but this isn't mentioned in the text." | | paragraph | 9 | | substring | "I've heard whispers in Chinatown. Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards. The market's moved to an abandoned station under Shoreditch for this lunar cycle" |
| | 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\"" |
|
| 107 | | parsed | | entry | "856" | | detail | "schedule" | | explanation | "The codex states the Veil Market moves locations every full moon, but this isn't mentioned in the text." | | paragraph | 9 | | substring | "I've heard whispers in Chinatown. Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards. The market's moved to an abandoned station under Shoreditch for this lunar cycle" |
| | 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 \"schedule\", expected \"currentLocation\"" |
|
| 108 | | parsed | | entry | "856" | | detail | "description" | | explanation | "The codex describes the Veil Market as a hidden supernatural black market that sells enchanted goods, banned alchemical substances, and information, but this isn't mentioned in the text." | | paragraph | 9 | | substring | "I've heard whispers in Chinatown. Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards. The market's moved to an abandoned station under Shoreditch for this lunar cycle" |
| | 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\"" |
|
| 109 | | parsed | | entry | "857" | | detail | "ruler" | | explanation | "The codex states Irath is ruled by Prince Abaddon, but the text doesn't specify who rules Irath in this context." | | paragraph | 7 | | substring | "Their servants spread Dream Dust through the city — stored in little red glass vials, sealed with white wax" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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\"" |
|
| 110 | | parsed | | entry | "857" | | detail | "skyColor" | | explanation | "The codex states Irath has a permanent bruised red sky, but this isn't mentioned in the text." | | paragraph | 7 | | substring | "Their servants spread Dream Dust through the city — stored in little red glass vials, sealed with white wax" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 111 | | parsed | | entry | "857" | | detail | "description" | | explanation | "The codex describes Irath as a volcanic wasteland of perpetual war with rivers of molten rock flowing between obsidian fortresses where damned souls fight in endless gladiatorial combat, but this isn't mentioned in the text." | | paragraph | 7 | | substring | "Their servants spread Dream Dust through the city — stored in little red glass vials, sealed with white wax" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 112 | | parsed | | entry | "858" | | detail | "cat" | | explanation | "The codex states Eva's flat has a tabby cat named Ptolemy, but this isn't mentioned in the text." | | paragraph | 2 | | substring | "Eva was beside her, clutching her leather satchel with both hands, her curly red hair escaping from under a wool hat" |
| | status | "false_positive" | | location | | extractedText | "Eva was beside her, clutching her leather satchel with both hands, her curly red hair escaping from under a wool hat" | | 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\"" |
|
| 113 | | parsed | | entry | "858" | | detail | "security" | | explanation | "The codex states Eva's flat has three deadbolts on the front door, but this isn't mentioned in the text." | | paragraph | 2 | | substring | "Eva was beside her, clutching her leather satchel with both hands, her curly red hair escaping from under a wool hat" |
| | status | "false_positive" | | location | | extractedText | "Eva was beside her, clutching her leather satchel with both hands, her curly red hair escaping from under a wool hat" | | inBounds | true | | expectedText | "" | | locationAccurate | true |
|
|
| 114 | | parsed | | entry | "858" | | detail | "description" | | explanation | "The codex describes Eva's flat as a cramped one-bedroom flat above a curry house on Brick Lane, East London with every surface covered with books, scrolls, and research notes, but this isn't mentioned in the text." | | paragraph | 2 | | substring | "Eva was beside her, clutching her leather satchel with both hands, her curly red hair escaping from under a wool hat" |
| | status | "false_positive" | | location | | extractedText | "Eva was beside her, clutching her leather satchel with both hands, her curly red hair escaping from under a wool hat" | | inBounds | true | | expectedText | "" | | locationAccurate | true |
|
|
| 115 | | parsed | | entry | "859" | | detail | "ruler" | | explanation | "The codex states Somnia is ruled by Prince Asmodeus, not Prince Lilith." | | paragraph | 4 | | substring | "The Somnian Cult grows bolder. 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 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\"" |
|
| 116 | | parsed | | entry | "859" | | detail | "atmosphere" | | explanation | "The codex states Somnia has a faintly sweet, narcotic smell, but this isn't mentioned in the text." | | paragraph | 4 | | substring | "The Somnian Cult grows bolder. 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 | "" | | locationAccurate | false |
|
|
| 117 | | parsed | | entry | "859" | | detail | "description" | | explanation | "The codex describes Somnia as an endless twilight landscape of fog-shrouded meadows and crumbling mansions where inhabitants gradually lose all motivation and ambition, sinking into eternal lethargy, but this isn't mentioned in the text." | | paragraph | 4 | | substring | "The Somnian Cult grows bolder. 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 | "" | | locationAccurate | false |
|
|
| 118 | | parsed | | entry | "860" | | detail | "password" | | explanation | "The codex states Yasmin's Apothecary requires \"moonrise\" as a password for back room access, but this isn't mentioned in the text." | | paragraph | 8 | | substring | "Yasmin uncorked a small vial and sniffed its contents" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 119 | | parsed | | entry | "860" | | detail | "frontStock" | | explanation | "The codex states Yasmin's Apothecary has herbal teas and aromatherapy oils as front stock, but this isn't mentioned in the text." | | paragraph | 8 | | substring | "Yasmin uncorked a small vial and sniffed its contents" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 120 | | parsed | | entry | "860" | | detail | "backStock" | | explanation | "The codex states Yasmin's Apothecary has supernatural potions, binding salts, and alchemical reagents as back stock, but this isn't mentioned in the text." | | paragraph | 8 | | substring | "Yasmin uncorked a small vial and sniffed its contents" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 121 | | parsed | | entry | "860" | | detail | "description" | | explanation | "The codex describes Yasmin's Apothecary as a narrow shop on a side street in Brixton with a mundane front and a hidden supernatural back room, but this isn't mentioned in the text." | | paragraph | 8 | | substring | "Yasmin uncorked a small vial and sniffed its contents" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 122 | | parsed | | entry | "861" | | detail | "parkLocation" | | explanation | "The codex states the Fae Grove is in Richmond Park, not Hyde Park." | | paragraph | 1 | | substring | "The Fae Grove in Hyde Park shimmered in the dying October light" |
| | 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 shimmered in the dying October light" | | inBounds | true | | expectedText | "The Fae Grove in Hyde Park" | | locationAccurate | true |
|
|
| 123 | | parsed | | entry | "861" | | detail | "standingStones" | | explanation | "The codex states the Fae Grove has ancient oak standing stones marking the boundary, not elm." | | paragraph | 1 | | substring | "The ancient elm standing stones hummed with a resonance that Isolde felt in her bones" |
| | 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 hummed with a resonance that Isolde felt in her bones" | | inBounds | true | | expectedText | "The ancient elm standing stones" | | locationAccurate | true |
|
|
| 124 | | parsed | | entry | "861" | | detail | "timeBehavior" | | explanation | "The codex states time moves differently in the Fae Grove — an hour inside can be minutes or days outside, but this isn't mentioned in the text." | | paragraph | 1 | | substring | "The Fae Grove in Hyde Park shimmered in the dying October light" |
| | status | "false_positive" | | location | | extractedText | "The Fae Grove in Hyde Park shimmered in the dying October light" | | inBounds | true | | expectedText | "The Fae Grove in Hyde Park" | | locationAccurate | true |
| | closestExpected | | entry | "861" | | detail | "parkLocation" | | summary | "The Fae Grove is in Richmond Park per codex, but the passage says Hyde Park." |
| | reason | "detail mismatch: got \"timeBehavior\", expected \"parkLocation\"" |
|
| 125 | | parsed | | entry | "861" | | detail | "flora" | | explanation | "The codex states wildflowers bloom year-round in the Fae Grove, but this isn't mentioned in the text." | | paragraph | 1 | | substring | "The Fae Grove in Hyde Park shimmered in the dying October light" |
| | status | "false_positive" | | location | | extractedText | "The Fae Grove in Hyde Park shimmered in the dying October light" | | inBounds | true | | expectedText | "The Fae Grove in Hyde Park" | | locationAccurate | true |
| | closestExpected | | entry | "861" | | detail | "parkLocation" | | summary | "The Fae Grove is in Richmond Park per codex, but the passage says Hyde Park." |
| | reason | "detail mismatch: got \"flora\", expected \"parkLocation\"" |
|
| 126 | | parsed | | entry | "861" | | detail | "description" | | explanation | "The codex describes the Fae Grove as a hidden clearing that exists in a pocket between Earth and the Fae realm, but this isn't mentioned in the text." | | paragraph | 1 | | substring | "The Fae Grove in Hyde Park shimmered in the dying October light" |
| | status | "false_positive" | | location | | extractedText | "The Fae Grove in Hyde Park shimmered in the dying October light" | | inBounds | true | | expectedText | "The Fae Grove in Hyde Park" | | locationAccurate | true |
| | closestExpected | | entry | "861" | | detail | "parkLocation" | | summary | "The Fae Grove is in Richmond Park per codex, but the passage says Hyde Park." |
| | reason | "detail mismatch: got \"description\", expected \"parkLocation\"" |
|
| 127 | | parsed | | entry | "862" | | detail | "ruler" | | explanation | "The codex states Luxuria is ruled by Prince Lilith, which is consistent." | | 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 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\"" |
|
| 128 | | parsed | | entry | "862" | | detail | "skyColor" | | explanation | "The codex states Luxuria has a deep twilight purple sky, but this isn't mentioned in the text." | | 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 | "" | | locationAccurate | false |
|
|
| 129 | | parsed | | entry | "862" | | detail | "description" | | explanation | "The codex describes Luxuria as a hauntingly beautiful realm of moonlit gardens, mirrored halls, and enchanting music where visitors become entranced by illusions of their deepest desires, but this isn't mentioned in the text." | | 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 | "" | | locationAccurate | false |
|
|
| 130 | | parsed | | entry | "2001" | | detail | "gemstoneColor" | | explanation | "The codex states the Heartstone Pendant has a deep crimson gemstone, which is consistent with crimson." | | paragraph | 23 | | substring | "the crimson stone glowing brighter than she'd ever seen" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "the golden chain tangled in her fingers" | | locationAccurate | (null) |
| | 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\"" |
|
| 131 | | parsed | | entry | "2001" | | detail | "chainMaterial" | | explanation | "The codex states the Heartstone Pendant has a silver chain, not golden." | | paragraph | 23 | | substring | "the golden chain tangled in her fingers" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "The Heartstone was forged in Avaros" | | locationAccurate | (null) |
| | closestExpected | | entry | "2001" | | detail | "origin" | | summary | "The Heartstone Pendant was forged in Dymas per codex, but Isolde says it was forged in Avaros." |
| | reason | "detail mismatch: got \"chainMaterial\", expected \"origin\"" |
|
| 132 | | parsed | | entry | "2001" | | detail | "size" | | explanation | "The codex states the Heartstone Pendant is roughly the size of a thumbnail, but this isn't mentioned in the text." | | paragraph | 23 | | substring | "the crimson stone glowing brighter than she'd ever seen" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "the golden chain tangled in her fingers" | | locationAccurate | (null) |
| | 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 \"size\", expected \"chainMaterial\"" |
|
| 133 | | parsed | | entry | "2001" | | detail | "behavior" | | explanation | "The codex states the Heartstone Pendant pulses faintly with warmth when near a Hel portal, but this isn't mentioned in the text." | | paragraph | 23 | | substring | "the crimson stone glowing brighter than she'd ever seen" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "the golden chain tangled in her fingers" | | locationAccurate | (null) |
| | 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\"" |
|
| 134 | | parsed | | entry | "2001" | | detail | "glow" | | explanation | "The codex states the Heartstone Pendant has a faint inner glow, which is consistent with glowing." | | paragraph | 23 | | substring | "the crimson stone glowing brighter than she'd ever seen" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "the golden chain tangled in her fingers" | | locationAccurate | (null) |
| | 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 \"glow\", expected \"chainMaterial\"" |
|
| 135 | | parsed | | entry | "2001" | | detail | "description" | | explanation | "The codex states the Heartstone Pendant was given to Aurora by an unknown benefactor, but this isn't mentioned in the text." | | paragraph | 23 | | substring | "the crimson stone glowing brighter than she'd ever seen" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "the golden chain tangled in her fingers" | | locationAccurate | (null) |
| | 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\"" |
|
| 136 | | parsed | | entry | "2002" | | detail | "pageMaterial" | | explanation | "The codex states the Ledger of Debts has thin beaten copper pages, but this isn't mentioned in the text." | | paragraph | 7 | | substring | "Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards" |
| | status | "false_positive" | | location | | extractedText | "Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards" | | inBounds | true | | expectedText | "bronze daggers, they say" | | locationAccurate | true |
| | 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\"" |
|
| 137 | | parsed | | entry | "2002" | | detail | "binding" | | explanation | "The codex states the Ledger of Debts has an iron-bound binding, but this isn't mentioned in the text." | | paragraph | 7 | | substring | "Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards" |
| | status | "false_positive" | | location | | extractedText | "Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards" | | inBounds | true | | expectedText | "" | | locationAccurate | true |
|
|
| 138 | | parsed | | entry | "2002" | | detail | "inkColor" | | explanation | "The codex states the Ledger of Debts has dark red ink that appears on its own, but this isn't mentioned in the text." | | paragraph | 7 | | substring | "Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards" |
| | status | "false_positive" | | location | | extractedText | "Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards" | | inBounds | true | | expectedText | "" | | locationAccurate | true |
|
|
| 139 | | parsed | | entry | "2002" | | detail | "power" | | explanation | "The codex states the Ledger of Debts allows whoever possesses it to call in debts owed to them, but this isn't mentioned in the text." | | paragraph | 7 | | substring | "Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards" |
| | status | "false_positive" | | location | | extractedText | "Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards" | | inBounds | true | | expectedText | "" | | locationAccurate | true |
|
|
| 140 | | parsed | | entry | "2002" | | detail | "description" | | explanation | "The codex states the Ledger of Debts is a thick ledger that records every supernatural debt owed, but this isn't mentioned in the text." | | paragraph | 7 | | substring | "Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards" |
| | status | "false_positive" | | location | | extractedText | "Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards" | | inBounds | true | | expectedText | "" | | locationAccurate | true |
|
|
| 141 | | parsed | | entry | "2003" | | detail | "material" | | explanation | "The codex states the Irathi War Gauntlet is made of blackened iron with glowing red runes, but this isn't mentioned in the text." | | paragraph | 9 | | substring | "Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "sealed with white wax" | | locationAccurate | false |
| | closestExpected | | entry | "2005" | | detail | "sealMaterial" | | summary | "Dream Dust vials are sealed with black wax per codex, but Isolde says white wax." |
| | reason | "entry mismatch: got \"2003\", expected \"2005\"" |
|
| 142 | | parsed | | entry | "2003" | | detail | "power" | | explanation | "The codex states the Irathi War Gauntlet grants superhuman strength but slowly corrupts the wearer's mind with rage, but this isn't mentioned in the text." | | paragraph | 9 | | substring | "Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 143 | | parsed | | entry | "2003" | | detail | "creator" | | explanation | "The codex states the Irathi War Gauntlet was created by a demon smith named Gorath, but this isn't mentioned in the text." | | paragraph | 9 | | substring | "Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 144 | | parsed | | entry | "2003" | | detail | "description" | | explanation | "The codex states the Irathi War Gauntlet is a fearsome gauntlet forged in the volcanic forges of Irath, but this isn't mentioned in the text." | | paragraph | 9 | | substring | "Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 145 | | parsed | | entry | "2004" | | detail | "casingMaterial" | | explanation | "The codex states the Veil Compass has a small brass compass casing, but this isn't mentioned in the text." | | paragraph | 10 | | substring | "Kai corrected from behind his laptop screen" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | 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 \"2004\", expected \"2006\"" |
|
| 146 | | parsed | | entry | "2004" | | detail | "faceMarkings" | | explanation | "The codex states the Veil Compass has a face etched with protective sigils, but this isn't mentioned in the text." | | paragraph | 10 | | substring | "Kai corrected from behind his laptop screen" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 147 | | parsed | | entry | "2004" | | detail | "needle" | | explanation | "The codex states the Veil Compass has a needle that points toward the nearest supernatural rift or portal, but this isn't mentioned in the text." | | paragraph | 10 | | substring | "Kai corrected from behind his laptop screen" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 148 | | parsed | | entry | "2004" | | detail | "patina" | | explanation | "The codex states the Veil Compass casing has a patina of verdigris, but this isn't mentioned in the text." | | paragraph | 10 | | substring | "Kai corrected from behind his laptop screen" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 149 | | parsed | | entry | "2004" | | detail | "creator" | | explanation | "The codex states the Veil Compass was crafted by a Shade artisan, but this isn't mentioned in the text." | | paragraph | 10 | | substring | "Kai corrected from behind his laptop screen" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 150 | | parsed | | entry | "2004" | | detail | "description" | | explanation | "The codex states the Veil Compass is a compass attuned to supernatural energy, but this isn't mentioned in the text." | | paragraph | 10 | | substring | "Kai corrected from behind his laptop screen" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 151 | | parsed | | entry | "2005" | | detail | "color" | | explanation | "The codex states Somnian Dream Dust is a fine silver powder, but this isn't mentioned in the text." | | paragraph | 8 | | substring | "Yasmin uncorked a small vial and sniffed its contents" |
| | 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 8]" | | inBounds | true | | expectedText | "little red glass vials" | | locationAccurate | false |
|
|
| 152 | | parsed | | entry | "2005" | | detail | "containerColor" | | explanation | "The codex states Somnian Dream Dust is stored in small cobalt-blue glass vials, but this isn't mentioned in the text." | | paragraph | 8 | | substring | "Yasmin uncorked a small vial and sniffed its contents" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "sealed with white wax" | | locationAccurate | false |
| | closestExpected | | entry | "2005" | | detail | "sealMaterial" | | summary | "Dream Dust vials are sealed with black wax per codex, but Isolde says white wax." |
| | reason | "detail mismatch: got \"containerColor\", expected \"sealMaterial\"" |
|
| 153 | | parsed | | entry | "2005" | | detail | "sealMaterial" | | explanation | "The codex states Somnian Dream Dust is sealed with black wax, but this isn't mentioned in the text." | | paragraph | 8 | | substring | "Yasmin uncorked a small vial and sniffed its contents" |
| | 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 8]" | | inBounds | true | | expectedText | "sealed with white wax" | | locationAccurate | false |
|
|
| 154 | | parsed | | entry | "2005" | | detail | "effect" | | explanation | "The codex states Somnian Dream Dust induces a deep trance for navigating memories and dreamscapes, but this isn't mentioned in the text." | | paragraph | 8 | | substring | "Yasmin uncorked a small vial and sniffed its contents" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | 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\"" |
|
| 155 | | parsed | | entry | "2005" | | detail | "sideEffect" | | explanation | "The codex states Somnian Dream Dust causes permanent drowsiness with overuse, but this isn't mentioned in the text." | | paragraph | 8 | | substring | "Yasmin uncorked a small vial and sniffed its contents" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | 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 \"sideEffect\", expected \"containerColor\"" |
|
| 156 | | parsed | | entry | "2005" | | detail | "description" | | explanation | "The codex states Somnian Dream Dust is a narcotic powder harvested from the twilight meadows of Somnia, but this isn't mentioned in the text." | | paragraph | 8 | | substring | "Yasmin uncorked a small vial and sniffed its contents" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | 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\"" |
|
| 157 | | parsed | | entry | "2006" | | detail | "material" | | explanation | "The codex states the Fae-Forged Blade is made of moonsilver, but this isn't mentioned in the text." | | paragraph | 22 | | substring | "She gripped the Fae-Forged Blade" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "the Fae-Forged Blade warm at her hip" | | locationAccurate | (null) |
| | closestExpected | | entry | "2006" | | detail | "temperature" | | summary | "The Fae-Forged Blade is always cold per codex, but the passage says warm." |
| | reason | "detail mismatch: got \"material\", expected \"temperature\"" |
|
| 158 | | parsed | | entry | "2006" | | detail | "shape" | | explanation | "The codex states the Fae-Forged Blade is a slender, leaf-shaped dagger, but this isn't mentioned in the text." | | paragraph | 22 | | substring | "She gripped the Fae-Forged Blade" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "the Fae-Forged Blade warm at her hip" | | locationAccurate | (null) |
| | closestExpected | | entry | "2006" | | detail | "temperature" | | summary | "The Fae-Forged Blade is always cold per codex, but the passage says warm." |
| | reason | "detail mismatch: got \"shape\", expected \"temperature\"" |
|
| 159 | | parsed | | entry | "2006" | | detail | "temperature" | | explanation | "The codex states the Fae-Forged Blade is always cold to the touch, but this isn't mentioned in the text." | | paragraph | 22 | | substring | "She gripped the Fae-Forged Blade" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "the Fae-Forged Blade warm at her hip" | | locationAccurate | (null) |
| | closestExpected | | entry | "2006" | | detail | "temperature" | | summary | "The Fae-Forged Blade is always cold per codex, but the passage says warm." |
| | reason | "paragraph mismatch, reported 22, expected 2" |
|
| 160 | | parsed | | entry | "2006" | | detail | "glow" | | explanation | "The codex states the Fae-Forged Blade faintly luminescent in moonlight, but this isn't mentioned in the text." | | paragraph | 22 | | substring | "She gripped the Fae-Forged Blade" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "the Fae-Forged Blade warm at her hip" | | locationAccurate | (null) |
| | closestExpected | | entry | "2006" | | detail | "temperature" | | summary | "The Fae-Forged Blade is always cold per codex, but the passage says warm." |
| | reason | "detail mismatch: got \"glow\", expected \"temperature\"" |
|
| 161 | | parsed | | entry | "2006" | | detail | "power" | | explanation | "The codex states the Fae-Forged Blade can cut through magical wards and is particularly effective against demons, but this isn't mentioned in the text." | | paragraph | 22 | | substring | "She gripped the Fae-Forged Blade" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "the Fae-Forged Blade warm at her hip" | | locationAccurate | (null) |
| | closestExpected | | entry | "2006" | | detail | "temperature" | | summary | "The Fae-Forged Blade is always cold per codex, but the passage says warm." |
| | reason | "detail mismatch: got \"power\", expected \"temperature\"" |
|
| 162 | | parsed | | entry | "2006" | | detail | "givenTo" | | explanation | "The codex states the Fae-Forged Blade was given to Aurora by Isolde as a gift, but this isn't mentioned in the text." | | paragraph | 22 | | substring | "She gripped the Fae-Forged Blade" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "the Fae-Forged Blade warm at her hip" | | locationAccurate | (null) |
| | 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\"" |
|
| 163 | | parsed | | entry | "2006" | | detail | "description" | | explanation | "The codex states the Fae-Forged Blade is a weapon of the Fae Courts, rare and highly coveted, but this isn't mentioned in the text." | | paragraph | 22 | | substring | "She gripped the Fae-Forged Blade" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "the Fae-Forged Blade warm at her hip" | | locationAccurate | (null) |
| | 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\"" |
|
| 164 | | parsed | | entry | "7001" | | detail | "solsticeEffect" | | explanation | "The codex states the Veil weakens during the winter solstice and strengthens during the summer solstice, but this isn't mentioned in the text." | | paragraph | 17 | | substring | "The rifts are multiplying. Three new ones opened near underground water sources" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 17]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 165 | | parsed | | entry | "7001" | | detail | "appearance" | | explanation | "The codex states the Veil appears as a faint shimmering distortion visible only to those with supernatural sight, but this isn't mentioned in the text." | | paragraph | 17 | | substring | "The rifts are multiplying. Three new ones opened near underground water sources" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 17]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 166 | | parsed | | entry | "7001" | | detail | "monitoring" | | explanation | "The codex states rift points are monitored by the Wardens, but this isn't mentioned in the text." | | paragraph | 17 | | substring | "The rifts are multiplying. Three new ones opened near underground water sources" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 17]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 167 | | parsed | | entry | "7001" | | detail | "description" | | explanation | "The codex states the Veil is the metaphysical barrier separating Earth from Hel and the Fae Realms, but this isn't mentioned in the text." | | paragraph | 17 | | substring | "The rifts are multiplying. Three new ones opened near underground water sources" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 17]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 168 | | parsed | | entry | "7002" | | detail | "signedYear" | | explanation | "The codex states the Covenant of Separation was signed in 1215, not 1066." | | paragraph | 6 | | substring | "The Covenant of Separation — the old treaty from 1066" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 169 | | parsed | | entry | "7002" | | detail | "signatories" | | explanation | "The codex states the Covenant of Separation was signed by rulers of Hel, the Fae Courts, and a council of human sorcerers, but this isn't mentioned in the text." | | paragraph | 6 | | substring | "The Covenant of Separation — the old treaty from 1066" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | 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 \"signatories\", expected \"signedYear\"" |
|
| 170 | | parsed | | entry | "7002" | | detail | "enforcement" | | explanation | "The codex states violations of the Covenant allow the Wardens to use lethal force, but this isn't mentioned in the text." | | paragraph | 6 | | substring | "The Covenant of Separation — the old treaty from 1066" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | 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 \"enforcement\", expected \"signedYear\"" |
|
| 171 | | parsed | | entry | "7002" | | detail | "physicalForm" | | explanation | "The codex states the Covenant of Separation is inscribed on seven stone tablets, each held by a different Warden chapter worldwide, but this isn't mentioned in the text." | | paragraph | 6 | | substring | "The Covenant of Separation — the old treaty from 1066" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | 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 \"physicalForm\", expected \"signedYear\"" |
|
| 172 | | parsed | | entry | "7002" | | detail | "description" | | explanation | "The codex states the Covenant of Separation is an ancient treaty that forbids direct demonic or Fae interference on Earth, but this isn't mentioned in the text." | | paragraph | 6 | | substring | "The Covenant of Separation — the old treaty from 1066" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | 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\"" |
|
| 173 | | parsed | | entry | "7003" | | detail | "peakActivity" | | explanation | "The codex states rift points are most active during the winter solstice, but this isn't mentioned in the text." | | paragraph | 17 | | substring | "The rifts are multiplying. Three new ones opened near underground water sources" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 17]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 174 | | parsed | | entry | "7003" | | detail | "formation" | | explanation | "The codex states rift points tend to form near underground water sources, which is consistent with the text." | | paragraph | 17 | | substring | "The rifts are multiplying. Three new ones opened near underground water sources" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 17]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 175 | | parsed | | entry | "7003" | | detail | "emission" | | explanation | "The codex states rift points emit a low hum inaudible to normal humans but detectable by supernatural beings and Warden instruments, but this isn't mentioned in the text." | | paragraph | 17 | | substring | "The rifts are multiplying. Three new ones opened near underground water sources" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 17]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 176 | | parsed | | entry | "7003" | | detail | "description" | | explanation | "The codex states rift points are naturally occurring weak spots in the Veil where the barrier between Earth and other realms is thin enough to cross, but this isn't mentioned in the text." | | paragraph | 17 | | substring | "The rifts are multiplying. Three new ones opened near underground water sources" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 17]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 177 | | parsed | | entry | "7004" | | detail | "sealingMethod" | | explanation | "The codex states Helbound souls are sealed by blood and recorded in that Prince's domain, but this isn't mentioned in the text." | | paragraph | 14 | | substring | "She'd escaped from a contract signed in Avaros — said Prince Belphegor's agents are kidnapping humans and forcing contracts on them" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 178 | | parsed | | entry | "7004" | | detail | "retention" | | explanation | "The codex states Helbound souls retain their skills and personality but are compelled to serve, but this isn't mentioned in the text." | | paragraph | 14 | | substring | "She'd escaped from a contract signed in Avaros — said Prince Belphegor's agents are kidnapping humans and forcing contracts on them" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 179 | | parsed | | entry | "7004" | | detail | "freedom" | | explanation | "The codex states Helbound souls can only be freed if the contract is physically destroyed within the realm where it was signed, which is consistent with the text." | | paragraph | 14 | | substring | "She'd escaped from a contract signed in Avaros — said Prince Belphegor's agents are kidnapping humans and forcing contracts on them" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 180 | | parsed | | entry | "7004" | | detail | "description" | | explanation | "The codex states Helbound souls are mortals who have entered into a binding contract with a Hel Prince, but this isn't mentioned in the text." | | paragraph | 14 | | substring | "She'd escaped from a contract signed in Avaros — said Prince Belphegor's agents are kidnapping humans and forcing contracts on them" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 181 | | parsed | | entry | "7005" | | detail | "requirement" | | explanation | "The codex states Shade transformation requires being caught between realms during a failed summoning or portal collapse, but this isn't mentioned in the text." | | paragraph | 16 | | substring | "I walked the shadow paths last night" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 16]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 182 | | parsed | | entry | "7005" | | detail | "physicalLoss" | | explanation | "The codex states Shade transformation strips the subject of their physical body permanently, but this isn't mentioned in the text." | | paragraph | 16 | | substring | "I walked the shadow paths last night" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 16]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 183 | | parsed | | entry | "7005" | | detail | "lostSenses" | | explanation | "The codex states Shades lose ability to taste, smell, or feel physical sensations, but this isn't mentioned in the text." | | paragraph | 16 | | substring | "I walked the shadow paths last night" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 16]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 184 | | parsed | | entry | "7005" | | detail | "reversibility" | | explanation | "The codex states Shade transformation is irreversible, but this isn't mentioned in the text." | | paragraph | 16 | | substring | "I walked the shadow paths last night" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 16]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 185 | | parsed | | entry | "7005" | | detail | "description" | | explanation | "The codex states Shade transformation is the process by which a living being becomes a Shade, but this isn't mentioned in the text." | | paragraph | 16 | | substring | "I walked the shadow paths last night" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 16]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 186 | | parsed | | entry | "6001" | | detail | "foundingYear" | | explanation | "The codex states the Wardens were founded in 1215, not 1066." | | paragraph | 12 | | substring | "The Wardens were founded in 1066 to maintain order, not wage war, but Blackthorn doesn't share that restraint" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 12]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 187 | | parsed | | entry | "6001" | | detail | "identificationMark" | | explanation | "The codex states Wardens have a small iron pin in the shape of a closed eye as identification, but this isn't mentioned in the text." | | paragraph | 12 | | substring | "The Wardens were founded in 1066 to maintain order, not wage war, but Blackthorn doesn't share that restraint" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 12]" | | 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\"" |
|
| 188 | | parsed | | entry | "6001" | | detail | "mission" | | explanation | "The codex states Wardens' mission is maintaining the Veil between Earth and Hel, monitoring rift activity, neutralizing supernatural threats, and enforcing the Covenant of Separation, but this isn't mentioned in the text." | | paragraph | 12 | | substring | "The Wardens were founded in 1066 to maintain order, not wage war, but Blackthorn doesn't share that restraint" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 12]" | | 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 \"mission\", expected \"foundingYear\"" |
|
| 189 | | parsed | | entry | "6001" | | detail | "description" | | explanation | "The codex states Wardens are an ancient order dedicated to guarding the boundary between worlds and view the clique with suspicion, but this isn't mentioned in the text." | | paragraph | 12 | | substring | "The Wardens were founded in 1066 to maintain order, not wage war, but Blackthorn doesn't share that restraint" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 12]" | | 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\"" |
|
| 190 | | parsed | | entry | "6002" | | detail | "leadership" | | explanation | "The codex states the Crimson Court is a council of seven demon lords, each representing a different circle of Hel, but this isn't mentioned in the text." | | paragraph | 7 | | substring | "Mammon breaks it daily in Avaros" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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 \"leadership\", expected \"headquarters\"" |
|
| 191 | | parsed | | entry | "6002" | | detail | "operations" | | explanation | "The codex states the Crimson Court operates through human proxies, corrupted artifacts, and Helbound agents, but this isn't mentioned in the text." | | paragraph | 7 | | substring | "Mammon breaks it daily in Avaros" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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\"" |
|
| 192 | | parsed | | entry | "6002" | | detail | "description" | | explanation | "The codex states the Crimson Court is an elite circle of demon aristocrats who seek to expand Hel's influence into Earth, but this isn't mentioned in the text." | | paragraph | 7 | | substring | "Mammon breaks it daily in Avaros" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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\"" |
|
| 193 | | parsed | | entry | "6003" | | detail | "master" | | explanation | "The codex states the Somnian Cult's master is Prince Asmodeus, not Prince Lilith." | | paragraph | 4 | | substring | "The Somnian Cult grows bolder. Their master, Prince Lilith, demands more dreamers for her garden of sleeping souls" |
| | status | "true_positive" | | matchedExpected | | entry | "6003" | | detail | "master" | | summary | "The Somnian Cult serves Prince Asmodeus per codex, but Isolde says Prince Lilith." |
| | location | | extractedText | "[not found in paragraph 4]" | | inBounds | true | | expectedText | "Prince Lilith, demands more dreamers" | | locationAccurate | false |
|
|
| 194 | | parsed | | entry | "6003" | | detail | "recruitmentMethod" | | explanation | "The codex states the Somnian Cult recruits through promises of peace and freedom from suffering, but this isn't mentioned in the text." | | paragraph | 4 | | substring | "The Somnian Cult grows bolder. 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 \"recruitmentMethod\", expected \"master\"" |
|
| 195 | | parsed | | entry | "6003" | | detail | "lure" | | explanation | "The codex states the Somnian Cult distributes Dream Dust, which is consistent with the text." | | paragraph | 4 | | substring | "The Somnian Cult grows bolder. 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 \"lure\", expected \"master\"" |
|
| 196 | | parsed | | entry | "6003" | | detail | "description" | | explanation | "The codex states the Somnian Cult is a cult of mortals who willingly entered Somnia seeking eternal rest and recruit new members on Earth, but this isn't mentioned in the text." | | paragraph | 4 | | substring | "The Somnian Cult grows bolder. 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\"" |
|
| 197 | | parsed | | entry | "6004" | | detail | "leader" | | explanation | "The codex states the Parish Guard is led by Father Cormac, which is consistent." | | paragraph | 6 | | substring | "Father Cormac crossed himself" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | 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\"" |
|
| 198 | | parsed | | entry | "6004" | | detail | "identification" | | explanation | "The codex states the Parish Guard uses rowan-wood rosaries for identification, but this isn't mentioned in the text." | | paragraph | 6 | | substring | "Father Cormac crossed himself" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | 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 \"identification\", expected \"headquarters\"" |
|
| 199 | | parsed | | entry | "6004" | | detail | "independence" | | explanation | "The codex states the Parish Guard operates independently from the Wardens, but this isn't mentioned in the text." | | paragraph | 6 | | substring | "Father Cormac crossed himself" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | 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 \"independence\", expected \"headquarters\"" |
|
| 200 | | parsed | | entry | "6004" | | detail | "description" | | explanation | "The codex states the Parish Guard is a secret network of clergy and laypeople who protect London from supernatural threats, but this isn't mentioned in the text." | | paragraph | 6 | | substring | "Father Cormac crossed himself" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | 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\"" |
|
| 201 | | parsed | | entry | "6005" | | detail | "owner" | | explanation | "The codex states the Golden Empress Restaurant is owned by Yu-Fei Cheung, but this isn't mentioned in the text." | | paragraph | 9 | | substring | "I've heard whispers in Chinatown. Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 202 | | parsed | | entry | "6005" | | detail | "role" | | explanation | "The codex states the Golden Empress Restaurant serves as a neutral meeting ground for supernatural factions, but this isn't mentioned in the text." | | paragraph | 9 | | substring | "I've heard whispers in Chinatown. Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 203 | | parsed | | entry | "6005" | | detail | "employee" | | explanation | "The codex states Aurora works at the Golden Empress Restaurant part-time as a delivery person, but this isn't mentioned in the text." | | paragraph | 9 | | substring | "I've heard whispers in Chinatown. Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 204 | | parsed | | entry | "6005" | | detail | "description" | | explanation | "The codex states the Golden Empress Restaurant is a Cantonese restaurant in Chinatown where Yu-Fei knows about the supernatural world but stays strictly neutral, but this isn't mentioned in the text." | | paragraph | 9 | | substring | "I've heard whispers in Chinatown. Someone's been buying Fae-Forged Blades from the Veil Market — bronze daggers, they say, that can cut through wards" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 9]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 205 | | parsed | | entry | "6006" | | detail | "leader" | | explanation | "The codex states Blackthorn Security is led by former Warden commander Helena Voss, which is consistent." | | paragraph | 11 | | substring | "Kai corrected from behind his laptop screen" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 11]" | | 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 \"leader\", expected \"logo\"" |
|
| 206 | | parsed | | entry | "6006" | | detail | "logo" | | explanation | "The codex states Blackthorn Security's logo is a thorned branch inside a shield, not a sword inside a circle." | | paragraph | 11 | | substring | "Kai corrected from behind his laptop screen" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 11]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 207 | | parsed | | entry | "6006" | | detail | "employees" | | explanation | "The codex states Blackthorn Security employs human operatives and bound supernatural entities, but this isn't mentioned in the text." | | paragraph | 11 | | substring | "Kai corrected from behind his laptop screen" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 11]" | | 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 \"employees\", expected \"logo\"" |
|
| 208 | | parsed | | entry | "6006" | | detail | "description" | | explanation | "The codex states Blackthorn Security is a private security company that is secretly a front for Warden hardliners who believe the current order is too lenient, but this isn't mentioned in the text." | | paragraph | 11 | | substring | "Kai corrected from behind his laptop screen" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 11]" | | 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\"" |
|