"Fae-Forged Blades are moonsilver per codex, but Wei-Lin says bronze."
status
"matched"
matchedBy
entry
"2006"
detail
"material"
explanation
"The codex states the Fae-Forged Blade is made of moonsilver, not bronze."
paragraph
7
substring
"bronze daggers"
location
extractedText
"bronze daggers"
inBounds
true
expectedText
"bronze daggers, they say"
locationAccurate
true
18
expected
entry
"856"
detail
"currentLocation"
summary
"The Veil Market is under Camden per codex, but Wei-Lin says Shoreditch."
status
"matched"
matchedBy
entry
"856"
detail
"currentLocation"
explanation
"The text states the Veil Market is under Camden, but the codex states it is under the abandoned Tube station beneath Camden."
paragraph
11
substring
"Camden"
location
extractedText
"[not found in paragraph 11]"
inBounds
true
expectedText
"abandoned station under Shoreditch"
locationAccurate
false
19
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
"Kai's codex states his hair is dyed electric-blue in an undercut; the text incorrectly describes it as natural black."
paragraph
11
substring
"his natural black hair"
location
extractedText
"[not found in paragraph 11]"
inBounds
true
expectedText
"his natural black hair falling into his face"
locationAccurate
false
20
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 codex states Blackthorn Security's logo is a \"thorned branch inside a shield\"; the text describes it as \"the sword inside a circle.\""
paragraph
11
substring
"the sword inside a circle"
location
extractedText
"[not found in paragraph 11]"
inBounds
true
expectedText
"the sword inside a circle"
locationAccurate
false
21
expected
entry
"4419"
detail
"walkingStick"
summary
"Maggie carries a blackthorn stick per codex, but the passage says oak."
status
"missed"
22
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
"Aurora's codex entry states her eye color is bright blue, but the text describes them as pale blue."
paragraph
3
substring
"her pale blue eyes"
reason
"entry mismatch: got \"4412\", expected \"4419\""
23
expected
entry
"6001"
detail
"foundingYear"
summary
"The Wardens were founded in 1215 per codex, but Maggie says 1066."
status
"missed"
nearMiss
parsed
entry
"6005"
detail
"foundingYear"
explanation
"The codex states the Wardens were founded in 1215; the text incorrectly states 1066."
paragraph
10
substring
"from 1066"
reason
"entry mismatch: got \"6005\", expected \"6001\""
24
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"
25
expected
entry
"4417"
detail
"birthplace"
summary
"Tomás was born in Seville per codex, but the passage implies Madrid accent."
status
"matched"
matchedBy
entry
"4417"
detail
"birthplace"
explanation
"Tomás' codex states his birthplace is Seville, Spain; the text incorrectly describes his accent as Madrid."
paragraph
11
substring
"Madrid accent thickened"
location
extractedText
"[not found in paragraph 11]"
inBounds
true
expectedText
"His Madrid accent"
locationAccurate
false
26
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
"Aurora's codex entry states her eye color is bright blue, but the text describes them as pale blue."
paragraph
3
substring
"her pale blue eyes"
reason
"entry mismatch: got \"4412\", expected \"4418\""
27
expected
entry
"2001"
detail
"chainMaterial"
summary
"The Heartstone Pendant has a silver chain per codex, but the passage says golden chain."
status
"missed"
28
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"
29
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
"6002"
detail
"ruler"
explanation
"The codex states Luxuria's ruler is Prince Lilith, but the text incorrectly associates Prince Lilith with Somnia (where the ruler is Prince Asmodeus)."
paragraph
7
substring
"Prince Lilith"
reason
"entry mismatch: got \"6002\", expected \"855\""
falsePositiveDetails
0
parsed
entry
"4412"
detail
"eyeColor"
explanation
"Aurora's codex entry states her eye color is bright blue, but the text describes them as pale blue."
paragraph
3
substring
"her pale blue eyes"
status
"false_positive"
location
extractedText
"[not found in paragraph 3]"
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\""
1
parsed
entry
"4412"
detail
"hair"
explanation
"Aurora's codex states her hair is straight shoulder-length black; the text describes it as silver."
paragraph
3
substring
"her waist-length silver hair"
status
"false_positive"
location
extractedText
"[not found in paragraph 3]"
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\""
2
parsed
entry
"4412"
detail
"backstory"
explanation
"The codex does not mention the Fae-Forged Blade being given to Aurora; it states it was given to her by Isolde."
paragraph
4
substring
"the Fae-Forged Blade warm at her hip"
status
"false_positive"
location
extractedText
"[not found in paragraph 4]"
inBounds
true
expectedText
""
locationAccurate
false
3
parsed
entry
"4413"
detail
"hair"
explanation
"Silas' codex states his hair is grey-streaked auburn; the text incorrectly describes it as black."
paragraph
7
substring
"his natural black hair"
status
"false_positive"
location
extractedText
"[not found in paragraph 7]"
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\""
4
parsed
entry
"4413"
detail
"cane"
explanation
"Silas' codex states his cane is ivory-handled; the text incorrectly describes it as mahogany."
paragraph
7
substring
"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
"entry mismatch: got \"4413\", expected \"4415\""
5
parsed
entry
"4414"
detail
"hair"
explanation
"Eva's codex states her hair is curly red; the text describes her wearing a wool hat that hides her hair."
paragraph
3
substring
"her curly red hair"
status
"false_positive"
location
extractedText
"[not found in paragraph 3]"
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."
"Isolde's codex states she is 300 years old; the text describes her as a \"three-hundred-year-old\" but does not contradict the age directly in a way that contradicts the codex."
paragraph
3
substring
"three-hundred-year-old Half-Fae body"
status
"false_positive"
location
extractedText
"[not found in paragraph 3]"
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."
"The codex states Luxuria's ruler is Prince Lilith, but the text incorrectly associates Prince Lilith with Somnia (where the ruler is Prince Asmodeus)."
paragraph
7
substring
"Prince Lilith"
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 \"6002\", expected \"855\""
12
parsed
entry
"6002"
detail
"leadership"
explanation
"The text incorrectly associates Prince Mammon (ruler of Avaros) with breaking the Covenant, when Prince Mammon is explicitly the ruler of Avaros in the codex."
paragraph
7
substring
"Prince Mammon breaks it daily in Avaros"
status
"false_positive"
location
extractedText
"[not found in paragraph 7]"
inBounds
true
expectedText
""
locationAccurate
false
13
parsed
entry
"6005"
detail
"foundingYear"
explanation
"The codex states the Wardens were founded in 1215; the text incorrectly states 1066."
paragraph
10
substring
"from 1066"
status
"false_positive"
location
extractedText
"[not found in paragraph 10]"
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
"entry mismatch: got \"6005\", expected \"6001\""
14
parsed
entry
"2006"
detail
"givenTo"
explanation
"The codex states the Fae-Forged Blade was given to Aurora by Isolde; the text incorrectly states it was given by an unknown benefactor."
paragraph
4
substring
"Given to Aurora by an unknown benefactor"
status
"false_positive"
location
extractedText
"[not found in paragraph 4]"
inBounds
true
expectedText
"the Fae-Forged Blade warm at her hip"
locationAccurate
false
closestExpected
entry
"2006"
detail
"temperature"
summary
"The Fae-Forged Blade is always cold per codex, but the passage says warm."
"The text incorrectly describes Dream Dust vials; the codex states Dream Dust is stored in cobalt-blue glass vials sealed with black wax."
paragraph
7
substring
"red glass vials, sealed with white wax"
status
"false_positive"
location
extractedText
"[not found in paragraph 7]"
inBounds
true
expectedText
""
locationAccurate
false
20
parsed
entry
"853"
detail
"ruler"
explanation
"The text incorrectly associates Prince Lilith with Dymas; the codex states Prince Belphegor is the ruler of Dymas."
paragraph
7
substring
"Prince Lilith"
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 \"853\", expected \"855\""
21
parsed
entry
"854"
detail
"signColor"
explanation
"The text incorrectly associates the Veil's shimmer with the Fae Grove; the codex states the Veil is a metaphysical barrier."
paragraph
12
substring
"The Veil shimmered"
status
"false_positive"
location
extractedText
"[not found in paragraph 12]"
inBounds
true
expectedText
""
locationAccurate
false
22
parsed
entry
"7004"
detail
"sealingMethod"
explanation
"The codex states contracts are sealed by blood and recorded in the Prince's domain; the text describes kidnapping and contract signing without explicit blood sealing."
paragraph
11
substring
"Prince Belphegor's agents are kidnapping humans"
status
"false_positive"
location
extractedText
"[not found in paragraph 11]"
inBounds
true
expectedText
""
locationAccurate
false
23
parsed
entry
"7005"
detail
"requirement"
explanation
"No direct contradiction, but the codex does not mention Eva's flat having deadbolts."
paragraph
12
substring
"three deadbolts on the front door"
status
"false_positive"
location
extractedText
"[not found in paragraph 12]"
inBounds
true
expectedText
""
locationAccurate
false
24
parsed
entry
"854"
detail
"paragraph"
explanation
"The text incorrectly associates the shimmer with The Raven's Nest; the codex states this is unrelated to the Veil shimmering."
substring
"The Raven's Nest shimmered"
status
"false_positive"
location
extractedText
(null)
inBounds
false
expectedText
""
locationAccurate
(null)
32.4324%
Precision
True positives: 12/37
totalReported
37
truePositives
12
reportedDetails
0
parsed
entry
"4412"
detail
"eyeColor"
explanation
"Aurora's codex entry states her eye color is bright blue, but the text describes them as pale blue."
paragraph
3
substring
"her pale blue eyes"
status
"false_positive"
location
extractedText
"[not found in paragraph 3]"
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\""
1
parsed
entry
"4412"
detail
"hair"
explanation
"Aurora's codex states her hair is straight shoulder-length black; the text describes it as silver."
paragraph
3
substring
"her waist-length silver hair"
status
"false_positive"
location
extractedText
"[not found in paragraph 3]"
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\""
2
parsed
entry
"4412"
detail
"backstory"
explanation
"The codex does not mention the Fae-Forged Blade being given to Aurora; it states it was given to her by Isolde."
paragraph
4
substring
"the Fae-Forged Blade warm at her hip"
status
"false_positive"
location
extractedText
"[not found in paragraph 4]"
inBounds
true
expectedText
""
locationAccurate
false
3
parsed
entry
"4413"
detail
"hair"
explanation
"Silas' codex states his hair is grey-streaked auburn; the text incorrectly describes it as black."
paragraph
7
substring
"his natural black hair"
status
"false_positive"
location
extractedText
"[not found in paragraph 7]"
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\""
4
parsed
entry
"4413"
detail
"cane"
explanation
"Silas' codex states his cane is ivory-handled; the text incorrectly describes it as mahogany."
paragraph
7
substring
"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
"entry mismatch: got \"4413\", expected \"4415\""
5
parsed
entry
"4414"
detail
"hair"
explanation
"Eva's codex states her hair is curly red; the text describes her wearing a wool hat that hides her hair."
paragraph
3
substring
"her curly red hair"
status
"false_positive"
location
extractedText
"[not found in paragraph 3]"
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."
"Isolde's codex states her eye color is pale lavender; the text describes her as having pale blue eyes."
paragraph
3
substring
"her pale lavender 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
"[not found in paragraph 3]"
inBounds
true
expectedText
"Her pale blue eyes, unblinking"
locationAccurate
false
15
parsed
entry
"4424"
detail
"age"
explanation
"Isolde's codex states she is 300 years old; the text describes her as a \"three-hundred-year-old\" but does not contradict the age directly in a way that contradicts the codex."
paragraph
3
substring
"three-hundred-year-old Half-Fae body"
status
"false_positive"
location
extractedText
"[not found in paragraph 3]"
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."
"The codex states Isolde leaves no footprints; the text describes her leaving clear prints."
paragraph
3
substring
"bare feet leaving clear prints"
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
"bare feet leaving clear prints"
inBounds
true
expectedText
"her bare feet leaving clear prints in the soft earth"
locationAccurate
true
18
parsed
entry
"6002"
detail
"ruler"
explanation
"The codex states Luxuria's ruler is Prince Lilith, but the text incorrectly associates Prince Lilith with Somnia (where the ruler is Prince Asmodeus)."
paragraph
7
substring
"Prince Lilith"
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 \"6002\", expected \"855\""
19
parsed
entry
"6002"
detail
"leadership"
explanation
"The text incorrectly associates Prince Mammon (ruler of Avaros) with breaking the Covenant, when Prince Mammon is explicitly the ruler of Avaros in the codex."
paragraph
7
substring
"Prince Mammon breaks it daily in Avaros"
status
"false_positive"
location
extractedText
"[not found in paragraph 7]"
inBounds
true
expectedText
""
locationAccurate
false
20
parsed
entry
"6003"
detail
"master"
explanation
"The text incorrectly associates Prince Lilith with the Somnian Cult; the codex states Prince Asmodeus is their master."
paragraph
7
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
"[not found in paragraph 7]"
inBounds
true
expectedText
"Prince Lilith, demands more dreamers"
locationAccurate
false
21
parsed
entry
"6005"
detail
"foundingYear"
explanation
"The codex states the Wardens were founded in 1215; the text incorrectly states 1066."
paragraph
10
substring
"from 1066"
status
"false_positive"
location
extractedText
"[not found in paragraph 10]"
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
"entry mismatch: got \"6005\", expected \"6001\""
22
parsed
entry
"6006"
detail
"logo"
explanation
"The codex states Blackthorn Security's logo is a \"thorned branch inside a shield\"; the text describes it as \"the sword inside a circle.\""
paragraph
11
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 11]"
inBounds
true
expectedText
"the sword inside a circle"
locationAccurate
false
23
parsed
entry
"2006"
detail
"givenTo"
explanation
"The codex states the Fae-Forged Blade was given to Aurora by Isolde; the text incorrectly states it was given by an unknown benefactor."
paragraph
4
substring
"Given to Aurora by an unknown benefactor"
status
"false_positive"
location
extractedText
"[not found in paragraph 4]"
inBounds
true
expectedText
"the Fae-Forged Blade warm at her hip"
locationAccurate
false
closestExpected
entry
"2006"
detail
"temperature"
summary
"The Fae-Forged Blade is always cold per codex, but the passage says warm."
"The codex states the Fae-Forged Blade is made of 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."
location
extractedText
"bronze daggers"
inBounds
true
expectedText
"bronze daggers, they say"
locationAccurate
true
31
parsed
entry
"2002"
detail
"inkColor"
explanation
"The text incorrectly describes Dream Dust vials; the codex states Dream Dust is stored in cobalt-blue glass vials sealed with black wax."
paragraph
7
substring
"red glass vials, sealed with white wax"
status
"false_positive"
location
extractedText
"[not found in paragraph 7]"
inBounds
true
expectedText
""
locationAccurate
false
32
parsed
entry
"853"
detail
"ruler"
explanation
"The text incorrectly associates Prince Lilith with Dymas; the codex states Prince Belphegor is the ruler of Dymas."
paragraph
7
substring
"Prince Lilith"
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 \"853\", expected \"855\""
33
parsed
entry
"854"
detail
"signColor"
explanation
"The text incorrectly associates the Veil's shimmer with the Fae Grove; the codex states the Veil is a metaphysical barrier."
paragraph
12
substring
"The Veil shimmered"
status
"false_positive"
location
extractedText
"[not found in paragraph 12]"
inBounds
true
expectedText
""
locationAccurate
false
34
parsed
entry
"7004"
detail
"sealingMethod"
explanation
"The codex states contracts are sealed by blood and recorded in the Prince's domain; the text describes kidnapping and contract signing without explicit blood sealing."
paragraph
11
substring
"Prince Belphegor's agents are kidnapping humans"
status
"false_positive"
location
extractedText
"[not found in paragraph 11]"
inBounds
true
expectedText
""
locationAccurate
false
35
parsed
entry
"7005"
detail
"requirement"
explanation
"No direct contradiction, but the codex does not mention Eva's flat having deadbolts."
paragraph
12
substring
"three deadbolts on the front door"
status
"false_positive"
location
extractedText
"[not found in paragraph 12]"
inBounds
true
expectedText
""
locationAccurate
false
36
parsed
entry
"854"
detail
"paragraph"
explanation
"The text incorrectly associates the shimmer with The Raven's Nest; the codex states this is unrelated to the Veil shimmering."