"The Fae Grove is in Richmond Park per codex, but the passage says Hyde Park."
status
"missed"
nearMiss
parsed
entry
"858"
detail
"cat"
explanation
"The text incorrectly places the Fae Grove in Hyde Park, but the codex states Eva's Flat is in Brick Lane, East London."
paragraph
1
substring
"Eva's Flat in Hyde Park"
reason
"entry mismatch: got \"858\", expected \"861\""
1
expected
entry
"861"
detail
"standingStones"
summary
"The grove has oak standing stones per codex, but the passage says elm."
status
"missed"
2
expected
entry
"4424"
detail
"eyeColor"
summary
"Isolde has pale lavender eyes per codex, but the passage says pale blue eyes."
status
"missed"
nearMiss
parsed
entry
"4412"
detail
"eyeColor"
explanation
"The text states Aurora has pale blue eyes, but the codex specifies bright blue."
paragraph
1
substring
"her pale blue eyes, unblinking"
reason
"entry mismatch: got \"4412\", expected \"4424\""
3
expected
entry
"4424"
detail
"eyeColor"
summary
"Isolde has pale lavender eyes per codex, but the passage again says pale blue eyes in a later paragraph."
status
"missed"
nearMiss
parsed
entry
"4412"
detail
"eyeColor"
explanation
"The text states Aurora has pale blue eyes, but the codex specifies bright blue."
paragraph
1
substring
"her pale blue eyes, unblinking"
reason
"entry mismatch: got \"4412\", expected \"4424\""
4
expected
entry
"4424"
detail
"footprints"
summary
"Isolde leaves no footprints per codex, but the passage says she leaves clear prints."
status
"missed"
5
expected
entry
"2006"
detail
"temperature"
summary
"The Fae-Forged Blade is always cold per codex, but the passage says warm."
status
"missed"
nearMiss
parsed
entry
"2006"
detail
"givenTo"
explanation
"The codex states the Fae-Forged Blade was given to Aurora by Isolde, but the text does not contradict this directly; however, the mention of the Heartstone's reaction is not a violation."
paragraph
1
substring
"The Crimson Court stirs, their servants spread Dream Dust through the city — stored in little red glass vials, sealed with white wax"
"Eva wears round glasses per codex, but the passage says square glasses."
status
"matched"
matchedBy
entry
"4414"
detail
"glasses"
explanation
"The codex states Eva wears round glasses, but the text describes them as square."
paragraph
1
substring
"Her square glasses kept fogging in the grove's strange microclimate"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
"Her square glasses kept fogging"
locationAccurate
false
7
expected
entry
"2005"
detail
"containerColor"
summary
"Dream Dust is stored in cobalt-blue vials per codex, but Isolde says red glass vials."
status
"matched"
matchedBy
entry
"2005"
detail
"color"
explanation
"The codex states Somnian Dream Dust is fine silver powder stored in cobalt-blue glass vials sealed with black wax, but the text describes red vials with white wax."
paragraph
1
substring
"Dream Dust through the city — stored in little red glass vials, sealed with white wax"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
"little red glass vials"
locationAccurate
false
8
expected
entry
"2005"
detail
"sealMaterial"
summary
"Dream Dust vials are sealed with black wax per codex, but Isolde says white wax."
status
"missed"
9
expected
entry
"6003"
detail
"master"
summary
"The Somnian Cult serves Prince Asmodeus per codex, but Isolde says Prince Lilith."
status
"missed"
10
expected
entry
"4422"
detail
"eyeColor"
summary
"Father Cormac has pale blue eyes per codex, but the passage says dark brown eyes."
status
"missed"
nearMiss
parsed
entry
"4412"
detail
"eyeColor"
explanation
"The text states Aurora has pale blue eyes, but the codex specifies bright blue."
paragraph
1
substring
"her pale blue eyes, unblinking"
reason
"entry mismatch: got \"4412\", expected \"4422\""
11
expected
entry
"4422"
detail
"rosary"
summary
"Cormac carries a rowan wood rosary per codex, but the passage says cedar."
status
"missed"
nearMiss
parsed
entry
"4422"
detail
"hair"
explanation
"The codex states Father Cormac's hair is thinning ginger, which is correctly described."
paragraph
1
substring
"Father Cormac crossed himself, his dark brown eyes troubled beneath his thinning ginger hair"
"The Covenant of Separation was signed in 1215 per codex, but Cormac says 1066."
status
"matched"
matchedBy
entry
"7002"
detail
"signedYear"
explanation
"The codex states the Covenant of Separation was signed in 1215, but the text states 1066."
paragraph
1
substring
"The Covenant of Separation — the old treaty from 1066"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
"the old treaty from 1066"
locationAccurate
false
13
expected
entry
"6004"
detail
"headquarters"
summary
"The Parish Guard HQ is St. Brigid's in Islington per codex, but Cormac says Southwark."
status
"missed"
14
expected
entry
"4415"
detail
"cane"
summary
"Lucien carries an ivory-handled cane per codex, but the passage says mahogany."
status
"matched"
matchedBy
entry
"4415"
detail
"cane"
explanation
"The codex states Lucien's cane is ivory-handled, but the text describes it as mahogany."
paragraph
1
substring
"leaning on his mahogany cane"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
"leaning on his mahogany cane"
locationAccurate
false
15
expected
entry
"4415"
detail
"eyeColor"
summary
"Lucien has heterochromatic eyes (one amber, one black), but the passage says both amber."
status
"missed"
nearMiss
parsed
entry
"4412"
detail
"eyeColor"
explanation
"The text states Aurora has pale blue eyes, but the codex specifies bright blue."
paragraph
1
substring
"her pale blue eyes, unblinking"
reason
"entry mismatch: got \"4412\", expected \"4415\""
16
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
"missed"
nearMiss
parsed
entry
"4421"
detail
"hair"
explanation
"The codex states Yasmin's hair is long wavy dark, but the text does not contradict this directly; however, the phrasing about her amber eyes is correct."
paragraph
1
substring
"Yasmin uncorked a small vial and sniffed its contents, her amber eyes narrowing"
"Wei-Lin's dragon tattoo covers his back per codex, but the passage says chest."
status
"missed"
nearMiss
parsed
entry
"4423"
detail
"age"
explanation
"The codex states Wei-Lin is 48, but the text does not contradict this directly; however, the phrasing about his dragon tattoo is correct."
paragraph
1
substring
"Wei-Lin, leaning against one of the standing stones with his arms folded, grunted in agreement. The edge of the dragon tattoo on his chest was visible above his collar"
"Fae-Forged Blades are moonsilver per codex, but Wei-Lin says bronze."
status
"missed"
nearMiss
parsed
entry
"2006"
detail
"givenTo"
explanation
"The codex states the Fae-Forged Blade was given to Aurora by Isolde, but the text does not contradict this directly; however, the mention of the Heartstone's reaction is not a violation."
paragraph
1
substring
"The Crimson Court stirs, their servants spread Dream Dust through the city — stored in little red glass vials, sealed with white wax"
"The Veil Market is under Camden per codex, but Wei-Lin says Shoreditch."
status
"matched"
matchedBy
entry
"856"
detail
"currentLocation"
explanation
"The codex states The Veil Market is currently under Camden, not Shoreditch."
paragraph
1
substring
"The Veil Market's moved to an abandoned station under Shoreditch"
location
extractedText
"[not found in paragraph 1]"
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
"matched"
matchedBy
entry
"4420"
detail
"hair"
explanation
"The codex states Kai's hair is dyed electric-blue, but the text describes it as natural black."
paragraph
1
substring
"Kai corrected from behind his laptop screen, his natural black hair falling into his face"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
"his natural black hair falling into his face"
locationAccurate
false
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 codex states Blackthorn's logo is a thorned branch inside a shield, but the text describes a sword inside a circle."
paragraph
1
substring
"Blackthorn Security has been mobilizing. Helena Voss pulled six operatives out of their Canary Wharf office yesterday. Their logo — the sword inside a circle"
location
extractedText
"[not found in paragraph 1]"
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
"matched"
matchedBy
entry
"4419"
detail
"eyeColor"
explanation
"The codex states Maggie has sharp grey eyes, but the text describes them as green."
paragraph
1
substring
"Maggie rapped her oak walking stick against a stone. Her keen green eyes swept the group"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
"Her keen green eyes"
locationAccurate
false
24
expected
entry
"6001"
detail
"foundingYear"
summary
"The Wardens were founded in 1215 per codex, but Maggie says 1066."
status
"missed"
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
"matched"
matchedBy
entry
"4417"
detail
"birthplace"
explanation
"The codex states Tomás was born in Seville, Spain, but the text does not contradict this directly; however, the mention of Tomás' Madrid accent is not a violation but stylistic."
paragraph
1
substring
"Tomás, who had been quietly checking medical supplies in his bag, looked up. His scarred right forearm brushed the zipper as he closed it"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
"His Madrid accent"
locationAccurate
false
27
expected
entry
"4418"
detail
"eyeColor"
summary
"Nyx has violet eyes per codex, but the passage says blue."
status
"matched"
matchedBy
entry
"4418"
detail
"eyeColor"
explanation
"The codex states Nyx's eyes are faintly glowing violet, but the text describes them as glowing blue."
paragraph
1
substring
"Nyx materialized from the shadow of a standing stone, their glowing blue eyes"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
"their glowing blue eyes"
locationAccurate
false
28
expected
entry
"2001"
detail
"chainMaterial"
summary
"The Heartstone Pendant has a silver chain per codex, but the passage says golden chain."
status
"missed"
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
"853"
detail
"ruler"
explanation
"The text incorrectly associates Prince Lilith with Somnia (Sloth), but the codex states Prince Lilith rules Luxuria (Lust)."
paragraph
1
substring
"Prince Lilith, demands more dreamers for her garden of sleeping souls"
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"
nearMiss
parsed
entry
"2006"
detail
"givenTo"
explanation
"The codex states the Fae-Forged Blade was given to Aurora by Isolde, but the text does not contradict this directly; however, the mention of the Heartstone's reaction is not a violation."
paragraph
1
substring
"The Crimson Court stirs, their servants spread Dream Dust through the city — stored in little red glass vials, sealed with white wax"
"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
"eyeColor"
explanation
"The text states Aurora has pale blue eyes, but the codex specifies bright blue."
paragraph
1
substring
"her pale blue eyes, unblinking"
status
"false_positive"
location
extractedText
"her pale blue eyes, unblinking"
inBounds
true
expectedText
"Her pale blue eyes, unblinking"
locationAccurate
true
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
"The text describes Aurora's hair as silver, but the codex states it is straight shoulder-length black."
paragraph
1
substring
"her waist-length silver hair stirring"
status
"false_positive"
location
extractedText
"her waist-length silver hair stirring"
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 text incorrectly implies the Fae-Forged Blade was given to Aurora by Isolde, but the codex states it was given to her by Isolde as a gift (not that she strapped it that morning)."
paragraph
1
substring
"the Fae-Forged Blade warm at her hip"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
""
locationAccurate
false
3
parsed
entry
"4412"
detail
"age"
explanation
"Aurora is 25 in the codex, but the text does not contradict this directly; however, the phrasing \"the Fae-Forged Blade warm at her hip\" is not a violation but a stylistic note about her possession."
paragraph
1
substring
"the Fae-Forged Blade warm at her hip"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
""
locationAccurate
false
4
parsed
entry
"4413"
detail
"eyeColor"
explanation
"The codex states Lucien has heterochromatic eyes (one amber, one black), but the text describes both eyes as amber."
paragraph
1
substring
"Lucien drawled, leaning on his mahogany cane. Both his amber eyes were fixed on Isolde"
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 \"4413\", expected \"4424\""
5
parsed
entry
"4414"
detail
"hair"
explanation
"The codex states Eva has curly red hair, but the text describes it as escaping from a wool hat, not contradicting hair color."
paragraph
1
substring
"her curly red hair escaping from under a wool hat"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
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."
"Cormac is 55 in the codex, but the text does not contradict this directly; however, the phrasing about his thinning ginger hair is correct."
paragraph
1
substring
"Father Cormac crossed himself, his dark brown eyes troubled beneath his thinning ginger hair"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
""
locationAccurate
false
7
parsed
entry
"4421"
detail
"hair"
explanation
"The codex states Yasmin's hair is long wavy dark, but the text does not contradict this directly; however, the phrasing about her amber eyes is correct."
paragraph
1
substring
"Yasmin uncorked a small vial and sniffed its contents, her amber eyes narrowing"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
"tattoo on her right arm"
locationAccurate
false
closestExpected
entry
"4421"
detail
"tattoo"
summary
"Yasmin's flame serpent tattoo is on her left arm per codex, but the passage says right arm."
"The codex states Wei-Lin is 48, but the text does not contradict this directly; however, the phrasing about his dragon tattoo is correct."
paragraph
1
substring
"Wei-Lin, leaning against one of the standing stones with his arms folded, grunted in agreement. The edge of the dragon tattoo on his chest was visible above his collar"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
"the dragon tattoo on his chest"
locationAccurate
false
closestExpected
entry
"4423"
detail
"tattoo"
summary
"Wei-Lin's dragon tattoo covers his back per codex, but the passage says chest."
"The text incorrectly places the Fae Grove in Hyde Park, but the codex states Eva's Flat is in Brick Lane, East London."
paragraph
1
substring
"Eva's Flat in Hyde Park"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
"The Fae Grove in Hyde Park"
locationAccurate
false
closestExpected
entry
"861"
detail
"parkLocation"
summary
"The Fae Grove is in Richmond Park per codex, but the passage says Hyde Park."
reason
"entry mismatch: got \"858\", expected \"861\""
11
parsed
entry
"853"
detail
"ruler"
explanation
"The text incorrectly associates Prince Lilith with Somnia (Sloth), but the codex states Prince Lilith rules Luxuria (Lust)."
paragraph
1
substring
"Prince Lilith, demands more dreamers for her garden of sleeping souls"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
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\""
12
parsed
entry
"854"
detail
"signColor"
explanation
"The codex states The Raven's Nest has a green neon sign, but the text does not mention this."
paragraph
1
substring
"The Crimson Court stirs, their servants spread Dream Dust through the city — stored in little red glass vials, sealed with white wax"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
""
locationAccurate
false
13
parsed
entry
"2006"
detail
"givenTo"
explanation
"The codex states the Fae-Forged Blade was given to Aurora by Isolde, but the text does not contradict this directly; however, the mention of the Heartstone's reaction is not a violation."
paragraph
1
substring
"The Crimson Court stirs, their servants spread Dream Dust through the city — stored in little red glass vials, sealed with white wax"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
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 rift points peak activity during the winter solstice, but the text does not contradict this directly; however, the mention of the solstice is not explicitly stated as a violation."
paragraph
1
substring
"The Veil shimmered — thin as gossamer, and getting thinner by the hour."
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
""
locationAccurate
false
16
parsed
entry
"7005"
detail
"requirement"
explanation
"The text does not contradict the Shade transformation lore but mentions the Heartstone's reaction, which is not a violation."
paragraph
1
substring
"Rory felt the Heartstone Pendant pulse in her pocket, as if in response."
"The text states Aurora has pale blue eyes, but the codex specifies bright blue."
paragraph
1
substring
"her pale blue eyes, unblinking"
status
"false_positive"
location
extractedText
"her pale blue eyes, unblinking"
inBounds
true
expectedText
"Her pale blue eyes, unblinking"
locationAccurate
true
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
"The text describes Aurora's hair as silver, but the codex states it is straight shoulder-length black."
paragraph
1
substring
"her waist-length silver hair stirring"
status
"false_positive"
location
extractedText
"her waist-length silver hair stirring"
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 text incorrectly implies the Fae-Forged Blade was given to Aurora by Isolde, but the codex states it was given to her by Isolde as a gift (not that she strapped it that morning)."
paragraph
1
substring
"the Fae-Forged Blade warm at her hip"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
""
locationAccurate
false
3
parsed
entry
"4412"
detail
"age"
explanation
"Aurora is 25 in the codex, but the text does not contradict this directly; however, the phrasing \"the Fae-Forged Blade warm at her hip\" is not a violation but a stylistic note about her possession."
paragraph
1
substring
"the Fae-Forged Blade warm at her hip"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
""
locationAccurate
false
4
parsed
entry
"4413"
detail
"eyeColor"
explanation
"The codex states Lucien has heterochromatic eyes (one amber, one black), but the text describes both eyes as amber."
paragraph
1
substring
"Lucien drawled, leaning on his mahogany cane. Both his amber eyes were fixed on Isolde"
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 \"4413\", expected \"4424\""
5
parsed
entry
"4414"
detail
"hair"
explanation
"The codex states Eva has curly red hair, but the text describes it as escaping from a wool hat, not contradicting hair color."
paragraph
1
substring
"her curly red hair escaping from under a wool hat"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
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 codex states Eva wears round glasses, but the text describes them as square."
paragraph
1
substring
"Her square glasses kept fogging in the grove's strange microclimate"
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 1]"
inBounds
true
expectedText
"Her square glasses kept fogging"
locationAccurate
false
7
parsed
entry
"4415"
detail
"cane"
explanation
"The codex states Lucien's cane is ivory-handled, but the text describes it as mahogany."
paragraph
1
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 1]"
inBounds
true
expectedText
"leaning on his mahogany cane"
locationAccurate
false
8
parsed
entry
"4416"
detail
"age"
explanation
"Cormac is 55 in the codex, but the text does not contradict this directly; however, the phrasing about his thinning ginger hair is correct."
paragraph
1
substring
"Father Cormac crossed himself, his dark brown eyes troubled beneath his thinning ginger hair"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
""
locationAccurate
false
9
parsed
entry
"4417"
detail
"birthplace"
explanation
"The codex states Tomás was born in Seville, Spain, but the text does not contradict this directly; however, the mention of Tomás' Madrid accent is not a violation but stylistic."
paragraph
1
substring
"Tomás, who had been quietly checking medical supplies in his bag, looked up. His scarred right forearm brushed the zipper as he closed it"
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 1]"
inBounds
true
expectedText
"His Madrid accent"
locationAccurate
false
10
parsed
entry
"4418"
detail
"eyeColor"
explanation
"The codex states Nyx's eyes are faintly glowing violet, but the text describes them as glowing blue."
paragraph
1
substring
"Nyx materialized from the shadow of a standing stone, their glowing blue eyes"
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 1]"
inBounds
true
expectedText
"their glowing blue eyes"
locationAccurate
false
11
parsed
entry
"4419"
detail
"eyeColor"
explanation
"The codex states Maggie has sharp grey eyes, but the text describes them as green."
paragraph
1
substring
"Maggie rapped her oak walking stick against a stone. Her keen green eyes swept the group"
status
"true_positive"
matchedExpected
entry
"4419"
detail
"eyeColor"
summary
"Maggie has grey eyes per codex, but the passage says green."
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
"Her keen green eyes"
locationAccurate
false
12
parsed
entry
"4420"
detail
"hair"
explanation
"The codex states Kai's hair is dyed electric-blue, but the text describes it as natural black."
paragraph
1
substring
"Kai corrected from behind his laptop screen, his natural black hair falling into his face"
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 1]"
inBounds
true
expectedText
"his natural black hair falling into his face"
locationAccurate
false
13
parsed
entry
"4421"
detail
"hair"
explanation
"The codex states Yasmin's hair is long wavy dark, but the text does not contradict this directly; however, the phrasing about her amber eyes is correct."
paragraph
1
substring
"Yasmin uncorked a small vial and sniffed its contents, her amber eyes narrowing"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
"tattoo on her right arm"
locationAccurate
false
closestExpected
entry
"4421"
detail
"tattoo"
summary
"Yasmin's flame serpent tattoo is on her left arm per codex, but the passage says right arm."
"The codex states Wei-Lin is 48, but the text does not contradict this directly; however, the phrasing about his dragon tattoo is correct."
paragraph
1
substring
"Wei-Lin, leaning against one of the standing stones with his arms folded, grunted in agreement. The edge of the dragon tattoo on his chest was visible above his collar"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
"the dragon tattoo on his chest"
locationAccurate
false
closestExpected
entry
"4423"
detail
"tattoo"
summary
"Wei-Lin's dragon tattoo covers his back per codex, but the passage says chest."
"The text incorrectly places the Fae Grove in Hyde Park, but the codex states Eva's Flat is in Brick Lane, East London."
paragraph
1
substring
"Eva's Flat in Hyde Park"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
"The Fae Grove in Hyde Park"
locationAccurate
false
closestExpected
entry
"861"
detail
"parkLocation"
summary
"The Fae Grove is in Richmond Park per codex, but the passage says Hyde Park."
reason
"entry mismatch: got \"858\", expected \"861\""
17
parsed
entry
"7002"
detail
"signedYear"
explanation
"The codex states the Covenant of Separation was signed in 1215, but the text states 1066."
paragraph
1
substring
"The Covenant of Separation — 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 1]"
inBounds
true
expectedText
"the old treaty from 1066"
locationAccurate
false
18
parsed
entry
"853"
detail
"ruler"
explanation
"The text incorrectly associates Prince Lilith with Somnia (Sloth), but the codex states Prince Lilith rules Luxuria (Lust)."
paragraph
1
substring
"Prince Lilith, demands more dreamers for her garden of sleeping souls"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
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\""
19
parsed
entry
"854"
detail
"signColor"
explanation
"The codex states The Raven's Nest has a green neon sign, but the text does not mention this."
paragraph
1
substring
"The Crimson Court stirs, their servants spread Dream Dust through the city — stored in little red glass vials, sealed with white wax"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
""
locationAccurate
false
20
parsed
entry
"2005"
detail
"color"
explanation
"The codex states Somnian Dream Dust is fine silver powder stored in cobalt-blue glass vials sealed with black wax, but the text describes red vials with white wax."
paragraph
1
substring
"Dream Dust through the city — stored in little red glass vials, sealed with white wax"
status
"true_positive"
matchedExpected
entry
"2005"
detail
"containerColor"
summary
"Dream Dust is stored in cobalt-blue vials per codex, but Isolde says red glass vials."
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
"little red glass vials"
locationAccurate
false
21
parsed
entry
"2006"
detail
"givenTo"
explanation
"The codex states the Fae-Forged Blade was given to Aurora by Isolde, but the text does not contradict this directly; however, the mention of the Heartstone's reaction is not a violation."
paragraph
1
substring
"The Crimson Court stirs, their servants spread Dream Dust through the city — stored in little red glass vials, sealed with white wax"
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
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 Veil Market is currently under Camden, not Shoreditch."
paragraph
1
substring
"The Veil Market's moved to 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 1]"
inBounds
true
expectedText
"abandoned station under Shoreditch"
locationAccurate
false
23
parsed
entry
"6006"
detail
"logo"
explanation
"The codex states Blackthorn's logo is a thorned branch inside a shield, but the text describes a sword inside a circle."
paragraph
1
substring
"Blackthorn Security has been mobilizing. Helena Voss pulled six operatives out of their Canary Wharf office yesterday. Their logo — 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 1]"
inBounds
true
expectedText
"the sword inside a circle"
locationAccurate
false
24
parsed
entry
"7002"
detail
"enforcement"
explanation
"The text incorrectly states the Covenant forbids direct interference, but the codex enforces lethal force for violations."
paragraph
1
substring
"The Covenant of Separation — the old treaty from 1066 — forbids this kind of direct interference."
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
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."
"The codex states rift points peak activity during the winter solstice, but the text does not contradict this directly; however, the mention of the solstice is not explicitly stated as a violation."
paragraph
1
substring
"The Veil shimmered — thin as gossamer, and getting thinner by the hour."
status
"false_positive"
location
extractedText
"[not found in paragraph 1]"
inBounds
true
expectedText
""
locationAccurate
false
26
parsed
entry
"7005"
detail
"requirement"
explanation
"The text does not contradict the Shade transformation lore but mentions the Heartstone's reaction, which is not a violation."
paragraph
1
substring
"Rory felt the Heartstone Pendant pulse in her pocket, as if in response."