"Nyx has violet eyes per codex, but the passage says blue eyes."
status
"missed"
nearMiss
parsed
entry
"4424"
detail
"eyeColor"
explanation
"Codex: Fae-Forged Blade material is “moonsilver” and shape is “slender, leaf-shaped dagger,” not “bronze daggers.”"
paragraph
7
substring
"Someone's buying Fae-Forged Blades — bronze daggers that cut through wards."
reason
"entry mismatch: got \"4424\", expected \"4418\""
1
expected
entry
"4417"
detail
"scar"
summary
"Tomás has a scar on his left forearm per codex, but the passage says right forearm."
status
"matched"
matchedBy
entry
"4417"
detail
"scar"
explanation
"Codex: Tomás Herrera has “scar running along his left forearm from a knife attack,” but the text says “right forearm.”"
paragraph
1
substring
"his scarred right forearm"
location
extractedText
"his scarred right forearm"
inBounds
true
expectedText
"his scarred right forearm"
locationAccurate
true
2
expected
entry
"4417"
detail
"birthplace"
summary
"Tomás was born in Seville per codex, but the passage implies Madrid accent."
status
"missed"
3
expected
entry
"4420"
detail
"hair"
summary
"Kai has dyed electric-blue hair per codex, but the passage says natural black hair."
status
"matched"
matchedBy
entry
"4420"
detail
"hair"
explanation
"Codex: Kai Nakamura’s hair is “dyed electric-blue in an undercut,” not natural black."
paragraph
2
substring
"his natural black hair hidden under a beanie"
location
extractedText
"his natural black hair hidden under a beanie"
inBounds
true
expectedText
"his natural black hair"
locationAccurate
true
4
expected
entry
"4419"
detail
"walkingStick"
summary
"Maggie carries a blackthorn walking stick per codex, but the passage says oak."
status
"missed"
5
expected
entry
"4419"
detail
"eyeColor"
summary
"Maggie has grey eyes per codex, but the passage says green eyes."
status
"matched"
matchedBy
entry
"4419"
detail
"eyeColor"
explanation
"Codex: Maggie Whitmore’s eyeColor is “sharp grey,” not green."
paragraph
3
substring
"her keen green eyes narrowing"
location
extractedText
"her keen green eyes narrowing"
inBounds
true
expectedText
"her keen green eyes"
locationAccurate
true
6
expected
entry
"6002"
detail
"headquarters"
summary
"The Crimson Court HQ is in Dymas per codex, but Maggie says Avaros."
status
"missed"
7
expected
entry
"2003"
detail
"material"
summary
"The Irathi War Gauntlet is blackened iron with red runes, but the passage says gleaming steel with blue runes."
status
"matched"
matchedBy
entry
"2003"
detail
"material"
explanation
"Codex: Irathi War Gauntlet material is “blackened iron with glowing red runes,” not gleaming steel with blue runes."
paragraph
4
substring
"gleaming steel with blue runes"
location
extractedText
"gleaming steel with blue runes"
inBounds
true
expectedText
"gleaming steel with blue runes"
locationAccurate
true
8
expected
entry
"2003"
detail
"origin"
summary
"The Gauntlet is from Irath, but the merchant says Dymas."
status
"matched"
matchedBy
entry
"2003"
detail
"origin"
explanation
"Codex: Irathi War Gauntlet origin is “Irath,” not “Dymas.”"
paragraph
4
substring
"Straight from Dymas"
location
extractedText
"Straight from Dymas"
inBounds
true
expectedText
"Straight from Dymas"
locationAccurate
true
9
expected
entry
"2003"
detail
"creator"
summary
"The Irathi War Gauntlet was forged by a demon smith named Gorath per codex, but the merchant attributes it to Prince Abaddon."
status
"missed"
10
expected
entry
"2004"
detail
"faceMarkings"
summary
"The Veil Compass face is etched with sigils, but the passage says smooth and unmarked."
status
"missed"
11
expected
entry
"2005"
detail
"containerColor"
summary
"Dream Dust vials are cobalt-blue per codex, but the passage says red glass."
status
"matched"
matchedBy
entry
"2005"
detail
"containerColor"
explanation
"Codex: Somnian Dream Dust is “stored in small cobalt-blue glass vials” and “sealed with black wax,” not red glass with white wax."
paragraph
5
substring
"the red glass container sealed with white wax"
location
extractedText
"the red glass container sealed with white wax"
inBounds
true
expectedText
"the red glass container"
locationAccurate
true
12
expected
entry
"2005"
detail
"sealMaterial"
summary
"Dream Dust vials are sealed with black wax per codex, but the passage says white wax."
status
"missed"
13
expected
entry
"4421"
detail
"tattoo"
summary
"Yasmin's flame serpent tattoo is on her left arm per codex, but the passage says right arm."
status
"matched"
matchedBy
entry
"4421"
detail
"tattoo"
explanation
"Codex: Yasmin Al-Rashid’s tattoo is “flame serpent tattoo coiling up her left arm,” not right arm."
paragraph
5
substring
"the flame serpent tattoo on her right arm"
location
extractedText
"the flame serpent tattoo on her right arm"
inBounds
true
expectedText
"tattoo on her right arm"
locationAccurate
true
14
expected
entry
"4422"
detail
"eyeColor"
summary
"Father Cormac has pale blue eyes per codex, but the passage says dark brown eyes."
status
"matched"
matchedBy
entry
"4422"
detail
"eyeColor"
explanation
"Codex: Father Cormac O'Brien’s eyeColor is “pale blue,” not dark brown."
paragraph
6
substring
"his dark brown eyes troubled"
location
extractedText
"his dark brown eyes troubled"
inBounds
true
expectedText
"his dark brown eyes troubled"
locationAccurate
true
15
expected
entry
"6004"
detail
"headquarters"
summary
"The Parish Guard HQ is St. Brigid's in Islington per codex, but Cormac says Southwark."
status
"missed"
16
expected
entry
"6003"
detail
"master"
summary
"The Somnian Cult serves Prince Asmodeus per codex, but Cormac says Prince Lilith."
status
"matched"
matchedBy
entry
"6003"
detail
"master"
explanation
"Codex: The Somnian Cult master is “Prince Asmodeus,” not Prince Lilith."
paragraph
6
substring
"The Somnians are getting bolder — Prince Lilith demands more dreamers."
location
extractedText
"The Somnians are getting bolder — Prince Lilith demands more dreamers."
inBounds
true
expectedText
"Prince Lilith demands more dreamers"
locationAccurate
true
17
expected
entry
"4423"
detail
"tattoo"
summary
"Wei-Lin's dragon tattoo covers his back per codex, but the passage says chest."
status
"matched"
matchedBy
entry
"4423"
detail
"tattoo"
explanation
"Codex: Zhou Wei-Lin has “a dragon tattoo covering his entire back,” but the text shows it “on his chest.”"
paragraph
2
substring
"the dragon tattoo on his chest partially visible"
location
extractedText
"[not found in paragraph 2]"
inBounds
true
expectedText
"the dragon tattoo on his chest"
locationAccurate
false
18
expected
entry
"2006"
detail
"material"
summary
"Fae-Forged Blades are moonsilver per codex, but Wei-Lin says bronze."
status
"matched"
matchedBy
entry
"2006"
detail
"material"
explanation
"Codex: Fae-Forged Blade material is “moonsilver,” not bronze."
paragraph
7
substring
"bronze daggers"
location
extractedText
"bronze daggers"
inBounds
true
expectedText
"bronze daggers that cut through wards"
locationAccurate
true
falsePositiveDetails
0
parsed
entry
"858"
detail
"realm"
explanation
"Codex: The Veil Market is “realm='Earth'” (and an abandoned Tube station beneath Camden), so the “beneath Camden” part is fine; however the text’s placement is Earth—no contradiction. No violation here."
paragraph
1
substring
"The Veil Market hummed beneath Camden"
status
"false_positive"
location
extractedText
"The Veil Market hummed beneath Camden"
inBounds
true
expectedText
""
locationAccurate
true
1
parsed
entry
"4424"
detail
"eyeColor"
explanation
"Codex: Fae-Forged Blade material is “moonsilver” and shape is “slender, leaf-shaped dagger,” not “bronze daggers.”"
paragraph
7
substring
"Someone's buying Fae-Forged Blades — bronze daggers that cut through wards."
status
"false_positive"
location
extractedText
"Someone's buying Fae-Forged Blades — bronze daggers that cut through wards."
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 eyes."
"Codex: Zhou Wei-Lin has “a dragon tattoo covering his entire back,” but the text shows it “on his chest.”"
paragraph
2
substring
"the dragon tattoo on his chest partially 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 2]"
inBounds
true
expectedText
"the dragon tattoo on his chest"
locationAccurate
false
1
parsed
entry
"4420"
detail
"hair"
explanation
"Codex: Kai Nakamura’s hair is “dyed electric-blue in an undercut,” not natural black."
paragraph
2
substring
"his natural black hair hidden under a beanie"
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
"his natural black hair hidden under a beanie"
inBounds
true
expectedText
"his natural black hair"
locationAccurate
true
2
parsed
entry
"4419"
detail
"eyeColor"
explanation
"Codex: Maggie Whitmore’s eyeColor is “sharp grey,” not green."
paragraph
3
substring
"her keen green eyes narrowing"
status
"true_positive"
matchedExpected
entry
"4419"
detail
"eyeColor"
summary
"Maggie has grey eyes per codex, but the passage says green eyes."
location
extractedText
"her keen green eyes narrowing"
inBounds
true
expectedText
"her keen green eyes"
locationAccurate
true
3
parsed
entry
"4417"
detail
"scar"
explanation
"Codex: Tomás Herrera has “scar running along his left forearm from a knife attack,” but the text says “right forearm.”"
paragraph
1
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
"his scarred right forearm"
inBounds
true
expectedText
"his scarred right forearm"
locationAccurate
true
4
parsed
entry
"2003"
detail
"material"
explanation
"Codex: Irathi War Gauntlet material is “blackened iron with glowing red runes,” not gleaming steel with blue runes."
paragraph
4
substring
"gleaming steel with blue runes"
status
"true_positive"
matchedExpected
entry
"2003"
detail
"material"
summary
"The Irathi War Gauntlet is blackened iron with red runes, but the passage says gleaming steel with blue runes."
location
extractedText
"gleaming steel with blue runes"
inBounds
true
expectedText
"gleaming steel with blue runes"
locationAccurate
true
5
parsed
entry
"2003"
detail
"origin"
explanation
"Codex: Irathi War Gauntlet origin is “Irath,” not “Dymas.”"
paragraph
4
substring
"Straight from Dymas"
status
"true_positive"
matchedExpected
entry
"2003"
detail
"origin"
summary
"The Gauntlet is from Irath, but the merchant says Dymas."
location
extractedText
"Straight from Dymas"
inBounds
true
expectedText
"Straight from Dymas"
locationAccurate
true
6
parsed
entry
"858"
detail
"realm"
explanation
"Codex: The Veil Market is “realm='Earth'” (and an abandoned Tube station beneath Camden), so the “beneath Camden” part is fine; however the text’s placement is Earth—no contradiction. No violation here."
paragraph
1
substring
"The Veil Market hummed beneath Camden"
status
"false_positive"
location
extractedText
"The Veil Market hummed beneath Camden"
inBounds
true
expectedText
""
locationAccurate
true
7
parsed
entry
"2005"
detail
"containerColor"
explanation
"Codex: Somnian Dream Dust is “stored in small cobalt-blue glass vials” and “sealed with black wax,” not red glass with white wax."
paragraph
5
substring
"the red glass container sealed with white wax"
status
"true_positive"
matchedExpected
entry
"2005"
detail
"containerColor"
summary
"Dream Dust vials are cobalt-blue per codex, but the passage says red glass."
location
extractedText
"the red glass container sealed with white wax"
inBounds
true
expectedText
"the red glass container"
locationAccurate
true
8
parsed
entry
"4421"
detail
"tattoo"
explanation
"Codex: Yasmin Al-Rashid’s tattoo is “flame serpent tattoo coiling up her left arm,” not right arm."
paragraph
5
substring
"the flame serpent tattoo on her right arm"
status
"true_positive"
matchedExpected
entry
"4421"
detail
"tattoo"
summary
"Yasmin's flame serpent tattoo is on her left arm per codex, but the passage says right arm."
location
extractedText
"the flame serpent tattoo on her right arm"
inBounds
true
expectedText
"tattoo on her right arm"
locationAccurate
true
9
parsed
entry
"4422"
detail
"eyeColor"
explanation
"Codex: Father Cormac O'Brien’s eyeColor is “pale blue,” 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
"his dark brown eyes troubled"
inBounds
true
expectedText
"his dark brown eyes troubled"
locationAccurate
true
10
parsed
entry
"6003"
detail
"master"
explanation
"Codex: The Somnian Cult master is “Prince Asmodeus,” not Prince Lilith."
paragraph
6
substring
"The Somnians are getting bolder — Prince Lilith demands more dreamers."
status
"true_positive"
matchedExpected
entry
"6003"
detail
"master"
summary
"The Somnian Cult serves Prince Asmodeus per codex, but Cormac says Prince Lilith."
location
extractedText
"The Somnians are getting bolder — Prince Lilith demands more dreamers."
inBounds
true
expectedText
"Prince Lilith demands more dreamers"
locationAccurate
true
11
parsed
entry
"4424"
detail
"eyeColor"
explanation
"Codex: Fae-Forged Blade material is “moonsilver” and shape is “slender, leaf-shaped dagger,” not “bronze daggers.”"
paragraph
7
substring
"Someone's buying Fae-Forged Blades — bronze daggers that cut through wards."
status
"false_positive"
location
extractedText
"Someone's buying Fae-Forged Blades — bronze daggers that cut through wards."
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 eyes."
reason
"entry mismatch: got \"4424\", expected \"4418\""
12
parsed
entry
"2006"
detail
"material"
explanation
"Codex: Fae-Forged Blade material is “moonsilver,” not bronze."
paragraph
7
substring
"bronze daggers"
status
"true_positive"
matchedExpected
entry
"2006"
detail
"material"
summary
"Fae-Forged Blades are moonsilver per codex, but Wei-Lin says bronze."