| 0 | | parsed | | entry | "6001" | | detail | "foundingYear" | | explanation | "The text says 1215, but the codex says 1066." | | paragraph | 16 | | substring | "founded in 1215" |
| | 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 16]" | | inBounds | true | | expectedText | "The Wardens were founded in 1066" | | locationAccurate | false |
|
|
| 1 | | parsed | | entry | "6001" | | detail | "alignment" | | explanation | "The text says neutral, but the codex says Lawful Neutral." | | paragraph | 16 | | substring | "neutral, not Lawful Neutral" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 16]" | | 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 \"alignment\", expected \"foundingYear\"" |
|
| 2 | | parsed | | entry | "6001" | | detail | "headquarters" | | explanation | "The text says Westminster Catacombs, but the codex says London, without specifying a location." | | paragraph | 16 | | substring | "Westminster Catacombs, London" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 16]" | | 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 \"headquarters\", expected \"foundingYear\"" |
|
| 3 | | parsed | | entry | "7002" | | detail | "signedYear" | | explanation | "The text says 1215, but the codex says 1215." | | paragraph | 14 | | substring | "1215" |
| | 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 14]" | | inBounds | true | | expectedText | "the old treaty from 1066" | | locationAccurate | false |
|
|
| 4 | | parsed | | entry | "7002" | | detail | "signatories" | | explanation | "The text says human sorcerers, but the codex says the rulers of Hel and the Fae Courts." | | paragraph | 14 | | substring | "a council of human sorcerers" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | 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\"" |
|
| 5 | | parsed | | entry | "7002" | | detail | "enforcement" | | explanation | "The text says violations, but the codex says violations of the Covenant of Separation." | | paragraph | 14 | | substring | "violations allow the Wardens to use lethal force" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | 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\"" |
|
| 6 | | parsed | | entry | "6002" | | detail | "leadership" | | explanation | "The text says seven, but the codex does not specify the number of demon lords in the Crimson Court's leadership." | | paragraph | 19 | | substring | "council of seven demon lords" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "" | | locationAccurate | (null) |
|
|
| 7 | | parsed | | entry | "6003" | | detail | "master" | | explanation | "The text says Prince Lilith, but the codex says Prince Asmodeus." | | paragraph | 20 | | substring | "Prince Lilith" |
| | status | "true_positive" | | matchedExpected | | entry | "6003" | | detail | "master" | | summary | "The Somnian Cult serves Prince Asmodeus per codex, but Isolde says Prince Lilith." |
| | location | | extractedText | (null) | | inBounds | false | | expectedText | "Prince Lilith, demands more dreamers" | | locationAccurate | (null) |
|
|
| 8 | | parsed | | entry | "6003" | | detail | "recruitmentMethod" | | explanation | "The text says peace and freedom from suffering, but the codex does not specify the cult's recruitment method." | | paragraph | 20 | | substring | "promises of peace and freedom from suffering" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "Prince Lilith, demands more dreamers" | | locationAccurate | (null) |
| | 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\"" |
|
| 9 | | parsed | | entry | "6003" | | detail | "lure" | | explanation | "The text says white wax, but the codex says black wax." | | paragraph | 20 | | substring | "little red glass vials sealed with white wax" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "Prince Lilith, demands more dreamers" | | locationAccurate | (null) |
| | 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\"" |
|
| 10 | | parsed | | entry | "6004" | | detail | "identification" | | explanation | "The text says rowan-wood rosaries, but the codex says a rosary made of rowan wood beads." | | paragraph | 23 | | substring | "rowan-wood rosaries" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "our cathedral in Southwark" | | locationAccurate | (null) |
| | 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\"" |
|
| 11 | | parsed | | entry | "6004" | | detail | "leader" | | explanation | "The codex says Cormac, but does not specify a first name." | | paragraph | 23 | | substring | "Father Cormac" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "our cathedral in Southwark" | | locationAccurate | (null) |
| | 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\"" |
|
| 12 | | parsed | | entry | "6005" | | detail | "owner" | | explanation | "The text is correct." | | paragraph | 25 | | substring | "Yu-Fei Cheung" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "" | | locationAccurate | (null) |
|
|
| 13 | | parsed | | entry | "6005" | | detail | "headquarters" | | explanation | "The text is correct." | | paragraph | 25 | | substring | "Chinatown, London" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "our cathedral in Southwark" | | locationAccurate | (null) |
| | closestExpected | | entry | "6004" | | detail | "headquarters" | | summary | "The Parish Guard HQ is St. Brigid's in Islington per codex, but Cormac says Southwark." |
| | reason | "entry mismatch: got \"6005\", expected \"6004\"" |
|
| 14 | | parsed | | entry | "6006" | | detail | "leader" | | explanation | "The codex says Warden commander, but does not specify the name Helena Voss." | | paragraph | 26 | | substring | "former Warden commander Helena Voss" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "the sword inside a circle" | | locationAccurate | (null) |
| | 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\"" |
|
| 15 | | parsed | | entry | "6006" | | detail | "logo" | | explanation | "The codex does not specify a logo, only a thorned branch inside a shield as the Blackthorn Security logo." | | paragraph | 26 | | substring | "thorned branch inside a shield" |
| | 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 | (null) | | inBounds | false | | expectedText | "the sword inside a circle" | | locationAccurate | (null) |
|
|
| 16 | | parsed | | entry | "4412" | | detail | "eyeColor" | | explanation | "The text says bright blue, but the codex says bright blue, which is correct." | | paragraph | 1 | | substring | "bright blue" |
| | 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\"" |
|
| 17 | | parsed | | entry | "4412" | | detail | "hair" | | explanation | "The text is correct." | | paragraph | 1 | | substring | "straight shoulder-length black" |
| | 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\"" |
|
| 18 | | parsed | | entry | "4412" | | detail | "height" | | explanation | "The text is correct." | | paragraph | 1 | | substring | "5'6" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 1]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 19 | | parsed | | entry | "4412" | | detail | "age" | | explanation | "The text is correct." | | paragraph | 1 | | substring | "25" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 1]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 20 | | parsed | | entry | "4412" | | detail | "scar" | | explanation | "The text is correct." | | paragraph | 1 | | substring | "small crescent-shaped scar on her left wrist from a childhood accident" |
| | 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\"" |
|
| 21 | | parsed | | entry | "4412" | | detail | "description" | | explanation | "The text is correct." | | paragraph | 1 | | substring | "cool-headed, intelligent, and known for quick out-of-the-box thinking" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 1]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 22 | | parsed | | entry | "4413" | | detail | "eyeColor" | | explanation | "The text is correct." | | paragraph | 5 | | substring | "hazel" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 5]" | | inBounds | true | | expectedText | "Her pale blue eyes, unblinking" | | locationAccurate | false |
| | closestExpected | | entry | "4424" | | detail | "eyeColor" | | summary | "Isolde has pale lavender eyes per codex, but the passage says pale blue eyes." |
| | reason | "entry mismatch: got \"4413\", expected \"4424\"" |
|
| 23 | | parsed | | entry | "4413" | | detail | "hair" | | explanation | "The text is correct." | | paragraph | 5 | | substring | "grey-streaked auburn" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 5]" | | 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 \"4413\", expected \"4420\"" |
|
| 24 | | parsed | | entry | "4413" | | detail | "height" | | explanation | "The text is correct." | | paragraph | 5 | | substring | "6'1" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 5]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 25 | | parsed | | entry | "4413" | | detail | "age" | | explanation | "The text is correct." | | paragraph | 5 | | substring | "58" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 5]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 26 | | parsed | | entry | "4413" | | detail | "beard" | | explanation | "The text is correct." | | paragraph | 5 | | substring | "neatly trimmed, matching his grey-streaked auburn hair" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 5]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 27 | | parsed | | entry | "4413" | | detail | "limp" | | explanation | "The text is correct." | | paragraph | 5 | | substring | "slight limp in his left leg from an old knee injury" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 5]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 28 | | parsed | | entry | "4413" | | detail | "signetRing" | | explanation | "The text is correct." | | paragraph | 5 | | substring | "silver signet ring, always worn on his right hand" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 5]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 29 | | parsed | | entry | "4413" | | detail | "description" | | explanation | "The text is correct." | | paragraph | 5 | | substring | "a retired intelligence operative turned bar owner" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 5]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 30 | | parsed | | entry | "4413" | | detail | "backstory" | | explanation | "The text is correct." | | paragraph | 5 | | substring | "former MI6 field agent who retired after a botched operation in Prague left him with a permanent knee injury" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 5]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 31 | | parsed | | entry | "4414" | | detail | "eyeColor" | | explanation | "The text is correct." | | paragraph | 7 | | substring | "green" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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 \"eyeColor\", expected \"glasses\"" |
|
| 32 | | parsed | | entry | "4414" | | detail | "hair" | | explanation | "The text is correct." | | paragraph | 7 | | substring | "curly red" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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\"" |
|
| 33 | | parsed | | entry | "4414" | | detail | "height" | | explanation | "The text is correct." | | paragraph | 7 | | substring | "5'4" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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\"" |
|
| 34 | | parsed | | entry | "4414" | | detail | "age" | | explanation | "The text is correct." | | paragraph | 7 | | substring | "26" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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\"" |
|
| 35 | | parsed | | entry | "4414" | | detail | "glasses" | | explanation | "The text is correct." | | paragraph | 7 | | substring | "round glasses" |
| | status | "true_positive" | | matchedExpected | | entry | "4414" | | detail | "glasses" | | summary | "Eva wears round glasses per codex, but the passage says square glasses." |
| | location | | extractedText | "[not found in paragraph 7]" | | inBounds | true | | expectedText | "Her square glasses kept fogging" | | locationAccurate | false |
|
|
| 36 | | parsed | | entry | "4414" | | detail | "satchel" | | explanation | "The text is correct." | | paragraph | 7 | | substring | "worn leather satchel full of books" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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\"" |
|
| 37 | | parsed | | entry | "4414" | | detail | "freckles" | | explanation | "The text is correct." | | paragraph | 7 | | substring | "freckled complexion" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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\"" |
|
| 38 | | parsed | | entry | "4414" | | detail | "nervousHabit" | | explanation | "The text is correct." | | paragraph | 7 | | substring | "tucking hair behind her left ear" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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\"" |
|
| 39 | | parsed | | entry | "4414" | | detail | "description" | | explanation | "The text is correct." | | paragraph | 7 | | substring | "Aurora's childhood friend and an occult researcher" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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\"" |
|
| 40 | | parsed | | entry | "4414" | | detail | "backstory" | | explanation | "The text is correct." | | paragraph | 7 | | substring | "moved to London two years before Aurora" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 7]" | | 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\"" |
|
| 41 | | parsed | | entry | "4415" | | detail | "eyeColor" | | explanation | "The text is correct." | | paragraph | 11 | | substring | "heterochromatic — one amber, one black" |
| | 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 11]" | | inBounds | true | | expectedText | "Both his amber eyes were fixed" | | locationAccurate | false |
|
|
| 42 | | parsed | | entry | "4415" | | detail | "hair" | | explanation | "The text is correct." | | paragraph | 11 | | substring | "slicked-back platinum blond" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 11]" | | 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\"" |
|
| 43 | | parsed | | entry | "4415" | | detail | "height" | | explanation | "The text is correct." | | paragraph | 11 | | substring | "5'11" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 11]" | | 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\"" |
|
| 44 | | parsed | | entry | "4415" | | detail | "age" | | explanation | "The text is correct." | | paragraph | 11 | | substring | "32" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 11]" | | 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\"" |
|
| 45 | | parsed | | entry | "4415" | | detail | "cane" | | explanation | "The text is correct." | | paragraph | 11 | | substring | "ivory-handled cane that conceals a thin blade" |
| | 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 11]" | | inBounds | true | | expectedText | "leaning on his mahogany cane" | | locationAccurate | false |
|
|
| 46 | | parsed | | entry | "4415" | | detail | "dress" | | explanation | "The text is correct." | | paragraph | 11 | | substring | "tailored charcoal suits" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 11]" | | 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\"" |
|
| 47 | | parsed | | entry | "4415" | | detail | "description" | | explanation | "The text is correct." | | paragraph | 11 | | substring | "an impeccably dressed fixer and information broker in London's supernatural underworld" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 11]" | | 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\"" |
|
| 48 | | parsed | | entry | "4415" | | detail | "backstory" | | explanation | "The text is correct." | | paragraph | 11 | | substring | "born in Marseille to a human mother and a demon father from the realm of Avaros" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 11]" | | 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\"" |
|
| 49 | | parsed | | entry | "4416" | | detail | "eyeColor" | | explanation | "The text is correct." | | paragraph | 13 | | substring | "brown" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | 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\"" |
|
| 50 | | parsed | | entry | "4416" | | detail | "hair" | | explanation | "The text is correct." | | paragraph | 13 | | substring | "closely cropped salt-and-pepper" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | 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 \"4416\", expected \"4420\"" |
|
| 51 | | parsed | | entry | "4416" | | detail | "height" | | explanation | "The text is correct." | | paragraph | 13 | | substring | "5'9" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 52 | | parsed | | entry | "4416" | | detail | "age" | | explanation | "The text is correct." | | paragraph | 13 | | substring | "41" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 53 | | parsed | | entry | "4416" | | detail | "jawline" | | explanation | "The text is correct." | | paragraph | 13 | | substring | "sharp jaw" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 54 | | parsed | | entry | "4416" | | detail | "watch" | | explanation | "The text is correct." | | paragraph | 13 | | substring | "worn leather watch on her left wrist" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 55 | | parsed | | entry | "4416" | | detail | "bearing" | | explanation | "The text is correct." | | paragraph | 13 | | substring | "military precision" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 56 | | parsed | | entry | "4416" | | detail | "description" | | explanation | "The text is correct." | | paragraph | 13 | | substring | "A Metropolitan Police detective with 18 years of decorated service who suspects the clique is involved in criminal activity" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 57 | | parsed | | entry | "4416" | | detail | "backstory" | | explanation | "The text is correct." | | paragraph | 13 | | substring | "she lost her partner, DS Morris, during a case three years ago under unexplained circumstances that had supernatural origins she doesn't yet understand" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
|
| 58 | | parsed | | entry | "4417" | | detail | "eyeColor" | | explanation | "The text is correct." | | paragraph | 15 | | substring | "warm brown" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 15]" | | 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 \"eyeColor\", expected \"scar\"" |
|
| 59 | | parsed | | entry | "4417" | | detail | "hair" | | explanation | "The text is correct." | | paragraph | 15 | | substring | "short curly dark brown" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 15]" | | 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 \"hair\", expected \"scar\"" |
|
| 60 | | parsed | | entry | "4417" | | detail | "height" | | explanation | "The text is correct." | | paragraph | 15 | | substring | "5'10" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 15]" | | 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\"" |
|
| 61 | | parsed | | entry | "4417" | | detail | "age" | | explanation | "The text is correct." | | paragraph | 15 | | substring | "29" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 15]" | | 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\"" |
|
| 62 | | parsed | | entry | "4417" | | detail | "skinTone" | | explanation | "The text is correct." | | paragraph | 15 | | substring | "olive skin" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 15]" | | 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 \"skinTone\", expected \"scar\"" |
|
| 63 | | parsed | | entry | "4417" | | detail | "scar" | | explanation | "The text is correct." | | paragraph | 15 | | substring | "scar running along his left forearm from a knife attack" |
| | 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 15]" | | inBounds | true | | expectedText | "His scarred right forearm" | | locationAccurate | false |
|
|
| 64 | | parsed | | entry | "4417" | | detail | "medallion" | | explanation | "The text is correct." | | paragraph | 15 | | substring | "Saint Christopher medallion around his neck" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 15]" | | inBounds | true | | expectedText | "His scarred right forearm" | | locationAccurate | false |
| | closestExpected | | entry | "4417" | | detail | "scar" | | summary | "Tomás has a scar on his left forearm per codex, but the passage says right forearm." |
| | reason | "detail mismatch: got \"medallion\", expected \"scar\"" |
|
| 65 | | parsed | | entry | "4417" | | detail | "birthplace" | | explanation | "The text is correct." | | paragraph | 15 | | substring | "Seville, Spain" |
| | 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 15]" | | inBounds | true | | expectedText | "His Madrid accent" | | locationAccurate | false |
|
|
| 66 | | parsed | | entry | "4417" | | detail | "description" | | explanation | "The text is correct." | | paragraph | 15 | | substring | "A former paramedic who provides off-the-books medical care for the clique" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 15]" | | 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\"" |
|
| 67 | | parsed | | entry | "4417" | | detail | "backstory" | | explanation | "The text is correct." | | paragraph | 15 | | substring | "born in Seville, Spain" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 15]" | | 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\"" |
|
| 68 | | parsed | | entry | "4418" | | detail | "eyeColor" | | explanation | "The text is correct." | | paragraph | 17 | | substring | "faintly glowing violet" |
| | 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 17]" | | inBounds | true | | expectedText | "their glowing blue eyes" | | locationAccurate | false |
|
|
| 69 | | parsed | | entry | "6006" | | detail | "logo" | | explanation | "" | | paragraph | 33 | | substring | "thorned branch inside a shield" |
| | status | "false_positive" | | location | | extractedText | (null) | | inBounds | false | | expectedText | "" | | locationAccurate | (null) |
|
|