"Avaros is Prince Mammon's realm per codex, but Tomás says Prince Belphegor's agents operate there."
status
"missed"
nearMiss
parsed
entry
"853"
detail
"ruler"
explanation
"The ruler of Luxuria (Lust) is Prince Lilith, but the Crimson Court is based in Dymas (Gluttony), ruled by Prince Belphegor. Lilith is not the ruler of Dymas."
paragraph
11
substring
"Prince Lilith"
reason
"entry mismatch: got \"853\", 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"
32
expected
entry
"6002"
detail
"headquarters"
summary
"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
"4412"
detail
"hair"
explanation
"Aurora's hair is straight shoulder-length black, not waist-length silver."
paragraph
2
substring
"her waist-length silver 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\""
1
parsed
entry
"4414"
detail
"hair"
explanation
"Eva's hair is curly red, but the description is correct. (No violation—this is a stylistic repetition of the codex.)"
paragraph
2
substring
"curly red hair"
status
"false_positive"
location
extractedText
"curly red hair"
inBounds
true
expectedText
"Her square glasses kept fogging"
locationAccurate
false
closestExpected
entry
"4414"
detail
"glasses"
summary
"Eva wears round glasses per codex, but the passage says square glasses."
"The ruler of Luxuria (Lust) is Prince Lilith, but the Crimson Court is based in Dymas (Gluttony), ruled by Prince Belphegor. Lilith is not the ruler of Dymas."
paragraph
11
substring
"Prince Lilith"
status
"false_positive"
location
extractedText
"[not found in paragraph 11]"
inBounds
true
expectedText
"Prince Belphegor's agents are kidnapping humans"
locationAccurate
false
closestExpected
entry
"855"
detail
"ruler"
summary
"Avaros is Prince Mammon's realm per codex, but Tomás says Prince Belphegor's agents operate there."
reason
"entry mismatch: got \"853\", expected \"855\""
3
parsed
entry
"860"
detail
"containerColor"
explanation
"Somnian Dream Dust is stored in small cobalt-blue glass vials, sealed with black wax, not red vials with white wax."
paragraph
16
substring
"little red glass vials, sealed with white wax"
status
"false_positive"
location
extractedText
"[not found in paragraph 16]"
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
"entry mismatch: got \"860\", expected \"2005\""
4
parsed
entry
"862"
detail
"ruler"
explanation
"The ruler of Luxuria (Lust) is Prince Lilith, but the Crimson Court is based in Dymas (Gluttony), ruled by Prince Belphegor. Lilith is not the ruler of Dymas."
paragraph
16
substring
"Prince Lilith"
status
"false_positive"
location
extractedText
"[not found in paragraph 16]"
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\""
5
parsed
entry
"2001"
detail
"gemstoneColor"
explanation
"The Heartstone Pendant's gemstone is deep crimson, but the description is correct. (No violation—this is a stylistic repetition of the codex.)"
paragraph
25
substring
"crimson stone"
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."
"The winter solstice is the time when the Veil weakens, but the text does not specify which solstice. However, the codex does not specify a solstice date, so this is not a violation. (No violation—this is a narrative choice.)"
"Eva wears round glasses per codex, but the passage says square glasses."
location
extractedText
"square glasses"
inBounds
true
expectedText
"Her square glasses kept fogging"
locationAccurate
true
7
parsed
entry
"7002"
detail
"signedYear"
explanation
"The Covenant of Separation was signed in 1215, not 1066."
paragraph
10
substring
"the old treaty from 1066"
status
"true_positive"
matchedExpected
entry
"7002"
detail
"signedYear"
summary
"The Covenant of Separation was signed in 1215 per codex, but Cormac says 1066."
location
extractedText
"[not found in paragraph 10]"
inBounds
true
expectedText
"the old treaty from 1066"
locationAccurate
false
8
parsed
entry
"4415"
detail
"eyeColor"
explanation
"Lucien's eyes are heterochromatic (one amber, one black), not both amber."
paragraph
11
substring
"Both his amber eyes"
status
"true_positive"
matchedExpected
entry
"4415"
detail
"eyeColor"
summary
"Lucien has heterochromatic eyes (one amber, one black), but the passage says both amber."
location
extractedText
"[not found in paragraph 11]"
inBounds
true
expectedText
"Both his amber eyes were fixed"
locationAccurate
false
9
parsed
entry
"4415"
detail
"cane"
explanation
"Lucien's cane has an ivory handle, not mahogany."
paragraph
11
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 11]"
inBounds
true
expectedText
"leaning on his mahogany cane"
locationAccurate
false
10
parsed
entry
"853"
detail
"ruler"
explanation
"The ruler of Luxuria (Lust) is Prince Lilith, but the Crimson Court is based in Dymas (Gluttony), ruled by Prince Belphegor. Lilith is not the ruler of Dymas."
paragraph
11
substring
"Prince Lilith"
status
"false_positive"
location
extractedText
"[not found in paragraph 11]"
inBounds
true
expectedText
"Prince Belphegor's agents are kidnapping humans"
locationAccurate
false
closestExpected
entry
"855"
detail
"ruler"
summary
"Avaros is Prince Mammon's realm per codex, but Tomás says Prince Belphegor's agents operate there."
reason
"entry mismatch: got \"853\", expected \"855\""
11
parsed
entry
"4421"
detail
"tattoo"
explanation
"Yasmin's flame serpent tattoo is on her left arm, not the right."
paragraph
13
substring
"flame serpent tattoo on her right arm"
status
"true_positive"
matchedExpected
entry
"4421"
detail
"tattoo"
summary
"Yasmin's flame serpent tattoo is on her left arm per codex, but the passage says right arm."
location
extractedText
"[not found in paragraph 13]"
inBounds
true
expectedText
"tattoo on her right arm"
locationAccurate
false
12
parsed
entry
"4422"
detail
"eyeColor"
explanation
"Father Cormac's eyes are pale blue, not dark brown."
paragraph
14
substring
"dark brown eyes"
status
"true_positive"
matchedExpected
entry
"4422"
detail
"eyeColor"
summary
"Father Cormac has pale blue eyes per codex, but the passage says dark brown eyes."
location
extractedText
"[not found in paragraph 14]"
inBounds
true
expectedText
"his dark brown eyes troubled"
locationAccurate
false
13
parsed
entry
"4422"
detail
"rosary"
explanation
"Father Cormac's rosary is made of rowan wood, not cedar."
paragraph
14
substring
"cedar rosary beads"
status
"true_positive"
matchedExpected
entry
"4422"
detail
"rosary"
summary
"Cormac carries a rowan wood rosary per codex, but the passage says cedar."
location
extractedText
"[not found in paragraph 14]"
inBounds
true
expectedText
"his cedar rosary beads"
locationAccurate
false
14
parsed
entry
"4423"
detail
"tattoo"
explanation
"Wei-Lin's dragon tattoo covers his entire back, not his chest."
paragraph
15
substring
"dragon tattoo on his chest"
status
"true_positive"
matchedExpected
entry
"4423"
detail
"tattoo"
summary
"Wei-Lin's dragon tattoo covers his back per codex, but the passage says chest."
location
extractedText
"[not found in paragraph 15]"
inBounds
true
expectedText
"the dragon tattoo on his chest"
locationAccurate
false
15
parsed
entry
"860"
detail
"containerColor"
explanation
"Somnian Dream Dust is stored in small cobalt-blue glass vials, sealed with black wax, not red vials with white wax."
paragraph
16
substring
"little red glass vials, sealed with white wax"
status
"false_positive"
location
extractedText
"[not found in paragraph 16]"
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
"entry mismatch: got \"860\", expected \"2005\""
16
parsed
entry
"862"
detail
"ruler"
explanation
"The ruler of Luxuria (Lust) is Prince Lilith, but the Crimson Court is based in Dymas (Gluttony), ruled by Prince Belphegor. Lilith is not the ruler of Dymas."
paragraph
16
substring
"Prince Lilith"
status
"false_positive"
location
extractedText
"[not found in paragraph 16]"
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\""
17
parsed
entry
"4420"
detail
"hair"
explanation
"Kai's hair is dyed electric-blue in an undercut, not natural black."
paragraph
17
substring
"natural black hair"
status
"true_positive"
matchedExpected
entry
"4420"
detail
"hair"
summary
"Kai has dyed electric-blue hair per codex, but the passage says natural black hair."
location
extractedText
"[not found in paragraph 17]"
inBounds
true
expectedText
"his natural black hair falling into his face"
locationAccurate
false
18
parsed
entry
"6006"
detail
"logo"
explanation
"Blackthorn Security's logo is a thorned branch inside a shield, not a sword inside a circle."
paragraph
18
substring
"the sword inside a circle"
status
"true_positive"
matchedExpected
entry
"6006"
detail
"logo"
summary
"Blackthorn Security's logo is a thorned branch inside a shield per codex, but Kai says a sword inside a circle."
location
extractedText
"[not found in paragraph 18]"
inBounds
true
expectedText
"the sword inside a circle"
locationAccurate
false
19
parsed
entry
"4417"
detail
"scar"
explanation
"Tomás's scar is on his left forearm, not the right."
paragraph
20
substring
"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
(null)
inBounds
false
expectedText
"His scarred right forearm"
locationAccurate
(null)
20
parsed
entry
"4417"
detail
"birthplace"
explanation
"Tomás was born in Seville, Spain, not Madrid."
paragraph
20
substring
"Madrid accent"
status
"true_positive"
matchedExpected
entry
"4417"
detail
"birthplace"
summary
"Tomás was born in Seville per codex, but the passage implies Madrid accent."
location
extractedText
(null)
inBounds
false
expectedText
"His Madrid accent"
locationAccurate
(null)
21
parsed
entry
"2001"
detail
"gemstoneColor"
explanation
"The Heartstone Pendant's gemstone is deep crimson, but the description is correct. (No violation—this is a stylistic repetition of the codex.)"
paragraph
25
substring
"crimson stone"
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."
"The Heartstone Pendant's chain is silver, not golden."
paragraph
25
substring
"golden chain"
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)
23
parsed
entry
"4412"
detail
"age"
explanation
"The winter solstice is the time when the Veil weakens, but the text does not specify which solstice. However, the codex does not specify a solstice date, so this is not a violation. (No violation—this is a narrative choice.)"