"The Veil Market is under Camden per codex, but Wei-Lin says Shoreditch."
status
"matched"
matchedBy
entry
"856"
detail
"currentLocation"
explanation
"The Veil Market is currently located under Camden, not Shoreditch."
paragraph
17
substring
"an abandoned station under Shoreditch"
location
extractedText
"[not found in paragraph 17]"
inBounds
true
expectedText
"abandoned station under Shoreditch"
locationAccurate
false
20
expected
entry
"4420"
detail
"hair"
summary
"Kai has dyed electric-blue hair per codex, but the passage says natural black hair."
status
"missed"
nearMiss
parsed
entry
"4412"
detail
"hair"
explanation
"The text states black hair, but the codex states straight shoulder-length black hair. This is not a contradiction, as the codex confirms her hair is straight shoulder-length black."
paragraph
2
substring
"her straight shoulder-length black hair"
reason
"entry mismatch: got \"4412\", expected \"4420\""
21
expected
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."
status
"matched"
matchedBy
entry
"6006"
detail
"logo"
explanation
"The logo of Blackthorn Security is a thorned branch inside a shield, not a sword."
paragraph
18
substring
"the sword inside a circle"
location
extractedText
"[not found in paragraph 18]"
inBounds
true
expectedText
"the sword inside a circle"
locationAccurate
false
22
expected
entry
"4419"
detail
"walkingStick"
summary
"Maggie carries a blackthorn stick per codex, but the passage says oak."
status
"missed"
23
expected
entry
"4419"
detail
"eyeColor"
summary
"Maggie has grey eyes per codex, but the passage says green."
status
"missed"
nearMiss
parsed
entry
"4412"
detail
"eyeColor"
explanation
"The text states bright blue eyes, which matches the codex entry."
paragraph
5
substring
"her bright blue eyes"
reason
"entry mismatch: got \"4412\", expected \"4419\""
24
expected
entry
"6001"
detail
"foundingYear"
summary
"The Wardens were founded in 1215 per codex, but Maggie says 1066."
status
"matched"
matchedBy
entry
"6001"
detail
"foundingYear"
explanation
"The Wardens of the Veil were founded in 1215, not 1066."
paragraph
21
substring
"1066"
location
extractedText
(null)
inBounds
false
expectedText
"The Wardens were founded in 1066"
locationAccurate
(null)
25
expected
entry
"4417"
detail
"scar"
summary
"Tomás has a scar on his left forearm per codex, but the passage says right forearm."
status
"missed"
26
expected
entry
"4417"
detail
"birthplace"
summary
"Tomás was born in Seville per codex, but the passage implies Madrid accent."
status
"missed"
27
expected
entry
"4418"
detail
"eyeColor"
summary
"Nyx has violet eyes per codex, but the passage says blue."
status
"missed"
nearMiss
parsed
entry
"4412"
detail
"eyeColor"
explanation
"The text states bright blue eyes, which matches the codex entry."
paragraph
5
substring
"her bright blue eyes"
reason
"entry mismatch: got \"4412\", expected \"4418\""
28
expected
entry
"2001"
detail
"chainMaterial"
summary
"The Heartstone Pendant has a silver chain per codex, but the passage says golden chain."
status
"matched"
matchedBy
entry
"2001"
detail
"chainMaterial"
explanation
"The Heartstone Pendant is said to have a silver chain, not golden."
paragraph
23
substring
"the golden chain"
location
extractedText
(null)
inBounds
false
expectedText
"the golden chain tangled in her fingers"
locationAccurate
(null)
29
expected
entry
"2001"
detail
"origin"
summary
"The Heartstone Pendant was forged in Dymas per codex, but Isolde says it was forged in Avaros."
status
"missed"
30
expected
entry
"855"
detail
"ruler"
summary
"Avaros is Prince Mammon's realm per codex, but Tomás says Prince Belphegor's agents operate there."
status
"missed"
nearMiss
parsed
entry
"859"
detail
"ruler"
explanation
"The ruler of Somnia is Prince Asmodeus, not Prince Lilith (ruler of Luxuria)."
paragraph
6
substring
"Prince Lilith"
reason
"entry mismatch: got \"859\", expected \"855\""
31
expected
entry
"2006"
detail
"temperature"
summary
"The Fae-Forged Blade is always cold per codex, but the passage again describes it as warm in a later paragraph."
status
"missed"
nearMiss
parsed
entry
"2006"
detail
"shape"
explanation
"The Fae-Forged Blade is described as a dagger, not daggers, and it's made of moonsilver, not bronze."
"The Crimson Court's headquarters is in Dymas per codex, but Lucien says their base has shifted to Irath."
status
"missed"
falsePositiveDetails
0
parsed
entry
"853"
detail
"skyColor"
explanation
"The ruler of Somnia is Prince Asmodeus, not Prince Lilith (ruler of Luxuria)."
paragraph
6
substring
"Prince Lilith"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
""
locationAccurate
false
1
parsed
entry
"859"
detail
"ruler"
explanation
"The ruler of Somnia is Prince Asmodeus, not Prince Lilith (ruler of Luxuria)."
paragraph
6
substring
"Prince Lilith"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
"Prince Belphegor's agents are kidnapping humans"
locationAccurate
false
closestExpected
entry
"855"
detail
"ruler"
summary
"Avaros is Prince Mammon's realm per codex, but Tomás says Prince Belphegor's agents operate there."
reason
"entry mismatch: got \"859\", expected \"855\""
2
parsed
entry
"4412"
detail
"hair"
explanation
"The text states black hair, but the codex states straight shoulder-length black hair. This is not a contradiction, as the codex confirms her hair is straight shoulder-length black."
paragraph
2
substring
"her straight shoulder-length black hair"
status
"false_positive"
location
extractedText
"[not found in paragraph 2]"
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\""
3
parsed
entry
"4412"
detail
"eyeColor"
explanation
"The text states bright blue eyes, which matches the codex entry."
paragraph
5
substring
"her bright blue eyes"
status
"false_positive"
location
extractedText
"[not found in paragraph 5]"
inBounds
true
expectedText
"Her pale blue eyes, unblinking"
locationAccurate
false
closestExpected
entry
"4424"
detail
"eyeColor"
summary
"Isolde has pale lavender eyes per codex, but the passage says pale blue eyes."
reason
"entry mismatch: got \"4412\", expected \"4424\""
4
parsed
entry
"4414"
detail
"eyeColor"
explanation
"The text states green eyes, which is correct per the codex."
paragraph
5
substring
"her bright green eyes"
status
"false_positive"
location
extractedText
"[not found in paragraph 5]"
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."
"The ruler of Somnia is Prince Asmodeus, not Prince Lilith (ruler of Luxuria)."
paragraph
6
substring
"Prince Lilith"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
""
locationAccurate
false
1
parsed
entry
"859"
detail
"ruler"
explanation
"The ruler of Somnia is Prince Asmodeus, not Prince Lilith (ruler of Luxuria)."
paragraph
6
substring
"Prince Lilith"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
"Prince Belphegor's agents are kidnapping humans"
locationAccurate
false
closestExpected
entry
"855"
detail
"ruler"
summary
"Avaros is Prince Mammon's realm per codex, but Tomás says Prince Belphegor's agents operate there."
reason
"entry mismatch: got \"859\", expected \"855\""
2
parsed
entry
"4412"
detail
"hair"
explanation
"The text states black hair, but the codex states straight shoulder-length black hair. This is not a contradiction, as the codex confirms her hair is straight shoulder-length black."
paragraph
2
substring
"her straight shoulder-length black hair"
status
"false_positive"
location
extractedText
"[not found in paragraph 2]"
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\""
3
parsed
entry
"4412"
detail
"eyeColor"
explanation
"The text states bright blue eyes, which matches the codex entry."
paragraph
5
substring
"her bright blue eyes"
status
"false_positive"
location
extractedText
"[not found in paragraph 5]"
inBounds
true
expectedText
"Her pale blue eyes, unblinking"
locationAccurate
false
closestExpected
entry
"4424"
detail
"eyeColor"
summary
"Isolde has pale lavender eyes per codex, but the passage says pale blue eyes."
reason
"entry mismatch: got \"4412\", expected \"4424\""
4
parsed
entry
"856"
detail
"currentLocation"
explanation
"The Veil Market is currently located under Camden, not Shoreditch."
paragraph
17
substring
"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 17]"
inBounds
true
expectedText
"abandoned station under Shoreditch"
locationAccurate
false
5
parsed
entry
"4414"
detail
"eyeColor"
explanation
"The text states green eyes, which is correct per the codex."
paragraph
5
substring
"her bright green eyes"
status
"false_positive"
location
extractedText
"[not found in paragraph 5]"
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."