| 0.0000% | Accuracy (recall) | Matched: 9/30, FP: 39 | | parsedCount | 48 | | matched | 9 | | total | 30 | | falsePositives | 39 | | expectedDetails | | 0 | | expected | | entry | "861" | | detail | "parkLocation" | | summary | "The Fae Grove is in Richmond Park per codex, but the passage says Hyde Park." |
| | status | "matched" | | matchedBy | | entry | "861" | | detail | "parkLocation" | | explanation | "The text says the Fae Grove is in Hyde Park, but the codex specifies it is located in Richmond Park." | | paragraph | 1 | | substring | "Hyde Park" |
| | location | | extractedText | "Hyde Park" | | inBounds | true | | expectedText | "The Fae Grove in Hyde Park" | | locationAccurate | true |
|
| | 1 | | expected | | entry | "861" | | detail | "standingStones" | | summary | "The grove has oak standing stones per codex, but the passage says elm." |
| | status | "missed" | | nearMiss | | parsed | | entry | "861" | | detail | "timeBehavior" | | explanation | "The text describes the Fae Grove as having a strange microclimate, but the codex specifies that time moves differently within the grove — an hour inside can be minutes or days outside." | | paragraph | 1 | | substring | "strange microclimate" |
| | reason | "detail mismatch: got \"timeBehavior\", expected \"standingStones\"" |
|
| | 2 | | expected | | entry | "4424" | | detail | "eyeColor" | | summary | "Isolde has pale lavender eyes per codex, but the passage says pale blue eyes." |
| | status | "matched" | | matchedBy | | entry | "4424" | | detail | "eyeColor" | | explanation | "The text says Nyx has glowing blue eyes, but the codex does not specify glowing eyes for any character except Nyx, whose eyes are described as faintly glowing violet." | | paragraph | 14 | | substring | "glowing blue eyes" |
| | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "Her pale blue eyes, unblinking" | | locationAccurate | false |
|
| | 3 | | expected | | entry | "4424" | | detail | "footprints" | | summary | "Isolde leaves no footprints per codex, but the passage says she leaves clear prints." |
| | status | "missed" |
| | 4 | | expected | | entry | "2006" | | detail | "temperature" | | summary | "The Fae-Forged Blade is always cold per codex, but the passage says warm." |
| | status | "matched" | | matchedBy | | entry | "2006" | | detail | "temperature" | | explanation | "The text says the Fae-Forged Blade is warm at Aurora's hip, but the codex states it is always cold to the touch." | | paragraph | 2 | | substring | "warm at her hip" |
| | location | | extractedText | "warm at her hip" | | inBounds | true | | expectedText | "the Fae-Forged Blade warm at her hip" | | locationAccurate | true |
|
| | 5 | | expected | | entry | "4414" | | detail | "glasses" | | summary | "Eva wears round glasses per codex, but the passage says square glasses." |
| | status | "matched" | | matchedBy | | entry | "4414" | | detail | "glasses" | | explanation | "The text describes Eva's glasses as square, which is consistent with the codex, but it should be noted that round glasses are specified in the codex." | | paragraph | 3 | | substring | "square glasses" |
| | location | | extractedText | "[not found in paragraph 3]" | | inBounds | true | | expectedText | "Her square glasses kept fogging" | | locationAccurate | false |
|
| | 6 | | expected | | entry | "2005" | | detail | "containerColor" | | summary | "Dream Dust is stored in cobalt-blue vials per codex, but Isolde says red glass vials." |
| | status | "missed" |
| | 7 | | expected | | entry | "2005" | | detail | "sealMaterial" | | summary | "Dream Dust vials are sealed with black wax per codex, but Isolde says white wax." |
| | status | "missed" |
| | 8 | | expected | | entry | "6003" | | detail | "master" | | summary | "The Somnian Cult serves Prince Asmodeus per codex, but Isolde says Prince Lilith." |
| | status | "missed" | | nearMiss | | parsed | | entry | "6003" | | detail | "lure" | | explanation | "The text mentions the Somnian Cult distributing Dream Dust, which is consistent with the codex, but it does not explicitly state that they lure new members with promises of peace and freedom from suffering, as described in the codex." | | paragraph | 10 | | substring | "distribute Dream Dust" |
| | reason | "detail mismatch: got \"lure\", expected \"master\"" |
|
| | 9 | | 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 says the Heartstone Pendant has a golden chain, but the codex does not specify the color of the chain, only that it is a silver chain." | | paragraph | 15 | | substring | "golden chain" |
| | reason | "entry mismatch: got \"4412\", expected \"4422\"" |
|
| | 10 | | 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 | "complexion" | | explanation | "The text describes Father Cormac with dark brown eyes, but the codex specifies his eye color as pale blue." | | paragraph | 8 | | substring | "dark brown eyes" |
| | reason | "detail mismatch: got \"complexion\", expected \"rosary\"" |
|
| | 11 | | expected | | entry | "7002" | | detail | "signedYear" | | summary | "The Covenant of Separation was signed in 1215 per codex, but Cormac says 1066." |
| | status | "missed" | | nearMiss | | parsed | | entry | "7001" | | detail | "signedYear" | | explanation | "The text says the Covenant of Separation was from 1066, but the codex states it was signed in the year 1215." | | paragraph | 6 | | substring | "1066" |
| | reason | "entry mismatch: got \"7001\", expected \"7002\"" |
|
| | 12 | | expected | | entry | "6004" | | detail | "headquarters" | | summary | "The Parish Guard HQ is St. Brigid's in Islington per codex, but Cormac says Southwark." |
| | status | "matched" | | matchedBy | | entry | "6004" | | detail | "headquarters" | | explanation | "The text mentions a cathedral in Southwark, but the codex specifies St. Brigid's Church in Islington as the headquarters for the Parish Guard." | | paragraph | 7 | | substring | "our cathedral in Southwark" |
| | location | | extractedText | "[not found in paragraph 7]" | | inBounds | true | | expectedText | "our cathedral in Southwark" | | locationAccurate | false |
|
| | 13 | | expected | | entry | "4415" | | detail | "cane" | | summary | "Lucien carries an ivory-handled cane per codex, but the passage says mahogany." |
| | status | "missed" | | nearMiss | | parsed | | entry | "4415" | | detail | "hair" | | explanation | "The text describes Father Cormac with thinning ginger hair, but the codex does not specify the color of his hair." | | paragraph | 8 | | substring | "thinning ginger hair" |
| | reason | "detail mismatch: got \"hair\", expected \"cane\"" |
|
| | 14 | | 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 | "4415" | | detail | "hair" | | explanation | "The text describes Father Cormac with thinning ginger hair, but the codex does not specify the color of his hair." | | paragraph | 8 | | substring | "thinning ginger hair" |
| | reason | "detail mismatch: got \"hair\", expected \"eyeColor\"" |
|
| | 15 | | 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 | "skinTone" | | explanation | "The text does not explicitly mention Yasmin's bronze skin, which is a notable characteristic in the codex." | | paragraph | 10 | | substring | "bronze skin" |
| | reason | "detail mismatch: got \"skinTone\", expected \"tattoo\"" |
|
| | 16 | | 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 | "The text mentions Wei-Lin's dragon tattoo, but it should be noted that the codex specifies the tattoo covers his entire back, which may not be visible with his arms folded." | | paragraph | 11 | | substring | "dragon tattoo" |
| | location | | extractedText | "[not found in paragraph 11]" | | inBounds | true | | expectedText | "the dragon tattoo on his chest" | | locationAccurate | false |
|
| | 17 | | expected | | entry | "2006" | | detail | "material" | | summary | "Fae-Forged Blades are moonsilver per codex, but Wei-Lin says bronze." |
| | status | "missed" |
| | 18 | | expected | | entry | "856" | | detail | "currentLocation" | | summary | "The Veil Market is under Camden per codex, but Wei-Lin says Shoreditch." |
| | status | "missed" |
| | 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 | "The text describes Kai's hair as natural black, but the codex specifies his hair as dyed electric-blue in an undercut." | | paragraph | 12 | | substring | "natural black hair" |
| | location | | extractedText | "[not found in paragraph 12]" | | 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 | "missed" | | nearMiss | | parsed | | entry | "6006" | | detail | "headquarters" | | explanation | "The text says Blackthorn Security's headquarters is in Canary Wharf, which is consistent with the codex, but it does not mention the Westminster Catacombs, which is also part of their headquarters as per the codex." | | paragraph | 12 | | substring | "Canary Wharf" |
| | reason | "detail mismatch: got \"headquarters\", expected \"logo\"" |
|
| | 21 | | expected | | entry | "4419" | | detail | "walkingStick" | | summary | "Maggie carries a blackthorn stick per codex, but the passage says oak." |
| | status | "missed" | | nearMiss | | parsed | | entry | "4419" | | detail | "age" | | explanation | "The text describes Isolde as having a three-hundred-year-old Half-Fae body, but the codex specifies Maggie's age as 72, which may cause confusion regarding the characters' ages." | | paragraph | 6 | | substring | "three-hundred-year-old Half-Fae body" |
| | reason | "detail mismatch: got \"age\", expected \"walkingStick\"" |
|
| | 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 | "The text says the Heartstone Pendant has a golden chain, but the codex does not specify the color of the chain, only that it is a silver chain." | | paragraph | 15 | | substring | "golden chain" |
| | 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 | "6001" | | detail | "headquarters" | | explanation | "The text says the Wardens' headquarters is in Westminster Catacombs, but the codex says it is in the Westminster Catacombs, London." | | paragraph | 1 | | substring | "Westminster Catacombs" |
| | reason | "detail mismatch: got \"headquarters\", expected \"foundingYear\"" |
|
| | 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" | | nearMiss | | parsed | | entry | "4417" | | detail | "age" | | explanation | "The text says Tomás treated a Helbound soul last week, which is inconsistent with the codex stating his age as 29, as it implies a timeline not reflected in the static age given in the codex." | | paragraph | 13 | | substring | "last week" |
| | reason | "detail mismatch: got \"age\", expected \"scar\"" |
|
| | 25 | | expected | | entry | "4417" | | detail | "birthplace" | | summary | "Tomás was born in Seville per codex, but the passage implies Madrid accent." |
| | status | "missed" | | nearMiss | | parsed | | entry | "4417" | | detail | "age" | | explanation | "The text says Tomás treated a Helbound soul last week, which is inconsistent with the codex stating his age as 29, as it implies a timeline not reflected in the static age given in the codex." | | paragraph | 13 | | substring | "last week" |
| | reason | "detail mismatch: got \"age\", expected \"birthplace\"" |
|
| | 26 | | 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 text says Nyx has glowing blue eyes, but the codex says they have faintly glowing violet eyes." | | paragraph | 14 | | substring | "glowing blue eyes" |
| | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "their glowing blue eyes" | | locationAccurate | false |
|
| | 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 | "matched" | | matchedBy | | entry | "855" | | detail | "ruler" | | explanation | "The text correctly identifies Prince Mammon as the ruler of Avaros, but it should be noted that the codex specifies the current location of the Crimson Court as Irath, not Avaros." | | paragraph | 8 | | substring | "Prince Mammon" |
| | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "Prince Belphegor's agents are kidnapping humans" | | locationAccurate | false |
|
|
| | falsePositiveDetails | | 0 | | parsed | | entry | "6001" | | detail | "headquarters" | | explanation | "The text says the Wardens' headquarters is in Westminster Catacombs, but the codex says it is in the Westminster Catacombs, London." | | paragraph | 1 | | substring | "Westminster Catacombs" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 1]" | | 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 | "detail mismatch: got \"headquarters\", expected \"foundingYear\"" |
| | 1 | | parsed | | entry | "6005" | | detail | "headquarters" | | explanation | "The text says the Golden Empress Restaurant's headquarters is in Chinatown, but the codex does not specify a location within Chinatown." | | paragraph | 1 | | substring | "Chinatown, London" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 1]" | | inBounds | true | | expectedText | "our cathedral in Southwark" | | locationAccurate | false |
| | closestExpected | | entry | "6004" | | detail | "headquarters" | | summary | "The Parish Guard HQ is St. Brigid's in Islington per codex, but Cormac says Southwark." |
| | reason | "entry mismatch: got \"6005\", expected \"6004\"" |
| | 2 | | parsed | | entry | "4413" | | detail | "bearing" | | explanation | "The text says Father Cormac has cedar rosary beads, but the codex says he has a rosary made of rowan wood beads." | | paragraph | 8 | | substring | "cedar rosary beads" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 3 | | parsed | | entry | "4415" | | detail | "hair" | | explanation | "The text describes Father Cormac with thinning ginger hair, but the codex does not specify the color of his hair." | | paragraph | 8 | | substring | "thinning ginger hair" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | 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 | "detail mismatch: got \"hair\", expected \"cane\"" |
| | 4 | | parsed | | entry | "4415" | | detail | "dress" | | explanation | "The text says Lucien is wearing a charcoal suit, but the codex says he dresses in tailored charcoal suits, not a single suit." | | paragraph | 8 | | substring | "charcoal suit" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | 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 | "detail mismatch: got \"dress\", expected \"cane\"" |
| | 5 | | parsed | | entry | "2004" | | detail | "faceMarkings" | | explanation | "The text describes the Veil Compass as a small brass compass, which matches the codex, but it does not mention the protective sigils that should be etched on its face." | | paragraph | 10 | | substring | "small brass compass" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 6 | | parsed | | entry | "4417" | | detail | "age" | | explanation | "The text says Tomás treated a Helbound soul last week, which is inconsistent with the codex stating his age as 29, as it implies a timeline not reflected in the static age given in the codex." | | paragraph | 13 | | substring | "last week" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "His scarred right forearm" | | locationAccurate | false |
| | closestExpected | | entry | "4417" | | detail | "scar" | | summary | "Tomás has a scar on his left forearm per codex, but the passage says right forearm." |
| | reason | "detail mismatch: got \"age\", expected \"scar\"" |
| | 7 | | parsed | | entry | "4412" | | detail | "eyeColor" | | explanation | "The text says the Heartstone Pendant has a golden chain, but the codex does not specify the color of the chain, only that it is a silver chain." | | paragraph | 15 | | substring | "golden chain" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 15]" | | 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\"" |
| | 8 | | parsed | | entry | "854" | | detail | "signColor" | | explanation | "The text does not explicitly state \"green neon sign\" for The Raven's Nest, but the codex specifies a distinctive green neon sign, which should be mentioned if accurate." | | paragraph | 16 | | substring | "green neon sign" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 16]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 9 | | parsed | | entry | "4414" | | detail | "hair" | | explanation | "The text says Eva is wearing a wool hat, which is not inconsistent with the codex, but it implies that her hair is covered, which should be visible as it is a prominent feature of her character." | | paragraph | 3 | | substring | "wool hat" |
| | 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." |
| | reason | "detail mismatch: got \"hair\", expected \"glasses\"" |
| | 10 | | parsed | | entry | "7001" | | detail | "signedYear" | | explanation | "The text says the Covenant of Separation was from 1066, but the codex states it was signed in the year 1215." | | paragraph | 6 | | substring | "1066" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | 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." |
| | reason | "entry mismatch: got \"7001\", expected \"7002\"" |
| | 11 | | parsed | | entry | "6006" | | detail | "headquarters" | | explanation | "The text says Blackthorn Security's headquarters is in Canary Wharf, which is consistent with the codex, but it does not mention the Westminster Catacombs, which is also part of their headquarters as per the codex." | | paragraph | 12 | | substring | "Canary Wharf" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 12]" | | inBounds | true | | expectedText | "the sword inside a circle" | | locationAccurate | false |
| | closestExpected | | 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." |
| | reason | "detail mismatch: got \"headquarters\", expected \"logo\"" |
| | 12 | | parsed | | entry | "4418" | | detail | "form" | | explanation | "The text says Nyx materialized from the shadow of a standing stone, but the codex does not specify that Nyx can take the form of a shadow or if they can physically materialize in such a manner." | | paragraph | 14 | | substring | "materialized from the shadow" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | 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." |
| | reason | "detail mismatch: got \"form\", expected \"eyeColor\"" |
| | 13 | | parsed | | entry | "4422" | | detail | "complexion" | | explanation | "The text describes Father Cormac with dark brown eyes, but the codex specifies his eye color as pale blue." | | paragraph | 8 | | substring | "dark brown eyes" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "his dark brown eyes troubled" | | locationAccurate | false |
| | closestExpected | | entry | "4422" | | detail | "eyeColor" | | summary | "Father Cormac has pale blue eyes per codex, but the passage says dark brown eyes." |
| | reason | "detail mismatch: got \"complexion\", expected \"eyeColor\"" |
| | 14 | | parsed | | entry | "4421" | | detail | "skinTone" | | explanation | "The text does not explicitly mention Yasmin's bronze skin, which is a notable characteristic in the codex." | | paragraph | 10 | | substring | "bronze skin" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | 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." |
| | reason | "detail mismatch: got \"skinTone\", expected \"tattoo\"" |
| | 15 | | parsed | | entry | "860" | | detail | "password" | | explanation | "The text does not explicitly mention the password \"moonrise\" for Yasmin's Apothecary, which is required for back room access according to the codex." | | paragraph | 10 | | substring | "moonrise" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 16 | | parsed | | entry | "4412" | | detail | "age" | | explanation | "The text describes Isolde as having a three-hundred-year-old Half-Fae body, but the codex states Aurora's age as 25, which may cause confusion regarding Isolde's age." | | paragraph | 15 | | substring | "three-hundred-year-old Half-Fae body" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 15]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 17 | | parsed | | entry | "853" | | detail | "ruler" | | explanation | "The text mentions Prince Belphegor as the ruler of Dymas, which is consistent with the codex, but it should be noted that the current base of operations for the Crimson Court is Irath, not Dymas." | | paragraph | 16 | | substring | "Prince Belphegor" |
| | 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 \"853\", expected \"855\"" |
| | 18 | | parsed | | entry | "859" | | detail | "ruler" | | explanation | "The text correctly identifies Prince Asmodeus as the ruler of Somnia, but it should be noted that the codex specifies the Somnian Cult's master as Prince Asmodeus, which is relevant to the context of the Dream Dust distribution." | | paragraph | 16 | | substring | "Prince Asmodeus" |
| | 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 \"859\", expected \"855\"" |
| | 19 | | parsed | | entry | "4412" | | detail | "hair" | | explanation | "The text does not explicitly mention Maggie's silver-white hair, which is a notable characteristic in the codex." | | paragraph | 2 | | substring | "silver-white, worn in a neat bun" |
| | 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\"" |
| | 20 | | parsed | | entry | "4419" | | detail | "age" | | explanation | "The text describes Isolde as having a three-hundred-year-old Half-Fae body, but the codex specifies Maggie's age as 72, which may cause confusion regarding the characters' ages." | | paragraph | 6 | | substring | "three-hundred-year-old Half-Fae body" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | inBounds | true | | expectedText | "her oak walking stick" | | locationAccurate | false |
| | closestExpected | | entry | "4419" | | detail | "walkingStick" | | summary | "Maggie carries a blackthorn stick per codex, but the passage says oak." |
| | reason | "detail mismatch: got \"age\", expected \"walkingStick\"" |
| | 21 | | parsed | | entry | "4412" | | detail | "height" | | explanation | "The text describes Eva clutching her satchel with both hands, which may imply a size inconsistent with the codex's description of her as 5'4\" tall." | | paragraph | 2 | | substring | "satchel with both hands" |
| | status | "false_positive" | | location | | extractedText | "satchel with both hands" | | inBounds | true | | expectedText | "" | | locationAccurate | true |
|
| | 22 | | parsed | | entry | "7005" | | detail | "requirement" | | explanation | "The text says someone became a Shade after being caught between realms, but the codex specifies that the Shade transformation requires the subject to be caught between realms during a failed summoning or portal collapse." | | paragraph | 14 | | substring | "caught between realms" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 23 | | parsed | | entry | "862" | | detail | "ruler" | | explanation | "The text correctly identifies Prince Lilith as the ruler of Luxuria, but it should be noted that the Somnian Cult is associated with Prince Asmodeus, not Prince Lilith." | | 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\"" |
| | 24 | | parsed | | entry | "6001" | | detail | "description" | | explanation | "The text describes the Parish Guard as a secret network of clergy and laypeople, which is consistent with the codex, but it should be noted that the codex specifies the Parish Guard operates independently from the Wardens." | | paragraph | 6 | | substring | "clergy and laypeople" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | 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 | "detail mismatch: got \"description\", expected \"foundingYear\"" |
| | 25 | | parsed | | entry | "4412" | | detail | "scar" | | explanation | "The text does not explicitly mention Aurora's small crescent-shaped scar on her left wrist, which is a notable characteristic in the codex." | | paragraph | 2 | | substring | "small crescent-shaped scar on her left wrist" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 2]" | | inBounds | true | | expectedText | "His scarred right forearm" | | locationAccurate | false |
| | closestExpected | | entry | "4417" | | detail | "scar" | | summary | "Tomás has a scar on his left forearm per codex, but the passage says right forearm." |
| | reason | "entry mismatch: got \"4412\", expected \"4417\"" |
| | 26 | | parsed | | entry | "4412" | | detail | "description" | | explanation | "The text does not explicitly mention Aurora's description as cool-headed, intelligent, and known for quick out-of-the-box thinking, which is provided in the codex." | | paragraph | 2 | | substring | "cool-headed, intelligent, and known for quick out-of-the-box thinking" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 2]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 27 | | parsed | | entry | "861" | | detail | "timeBehavior" | | explanation | "The text describes the Fae Grove as having a strange microclimate, but the codex specifies that time moves differently within the grove — an hour inside can be minutes or days outside." | | paragraph | 1 | | substring | "strange microclimate" |
| | 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 | "detail mismatch: got \"timeBehavior\", expected \"parkLocation\"" |
| | 28 | | parsed | | entry | "4414" | | detail | "satchel" | | explanation | "The text mentions Eva's leather satchel, which is consistent with the codex, but it does not explicitly state that it is worn and full of books, as described in the codex." | | paragraph | 3 | | substring | "leather satchel" |
| | 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." |
| | reason | "detail mismatch: got \"satchel\", expected \"glasses\"" |
| | 29 | | parsed | | entry | "4414" | | detail | "nervousHabit" | | explanation | "The text describes Eva's glasses fogging, which is consistent with her wearing glasses, but it does not explicitly mention her nervous habit of tucking her hair behind her left ear, as described in the codex." | | paragraph | 3 | | substring | "her square glasses kept fogging" |
| | 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." |
| | reason | "detail mismatch: got \"nervousHabit\", expected \"glasses\"" |
| | 30 | | parsed | | entry | "4413" | | detail | "signetRing" | | explanation | "The text does not mention Silas' silver signet ring, which he always wears on his right hand according to the codex." | | paragraph | 8 | | substring | "no mention of signet ring" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 31 | | parsed | | entry | "4413" | | detail | "limp" | | explanation | "The text does not mention Silas' slight limp in his left leg from an old knee injury, which is a notable characteristic in the codex." | | paragraph | 8 | | substring | "no mention of limp" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 32 | | parsed | | entry | "4417" | | detail | "medallion" | | explanation | "The text mentions Tomás' Saint Christopher medallion, which is consistent with the codex, but it does not explicitly state that he wears it around his neck, as described in the codex." | | paragraph | 13 | | substring | "Saint Christopher medallion" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "His scarred right forearm" | | locationAccurate | false |
| | closestExpected | | entry | "4417" | | detail | "scar" | | summary | "Tomás has a scar on his left forearm per codex, but the passage says right forearm." |
| | reason | "detail mismatch: got \"medallion\", expected \"scar\"" |
| | 33 | | parsed | | entry | "7003" | | detail | "peakActivity" | | explanation | "The text mentions new rifts opening near underground water sources, which is consistent with the codex, but it should be noted that rift points are most active during the winter solstice according to the codex." | | paragraph | 14 | | substring | "three new ones opened near underground water sources" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 34 | | parsed | | entry | "7004" | | detail | "sealingMethod" | | explanation | "The text mentions a contract signed in Avaros, which is consistent with the codex, but it should be noted that the codex specifies sealing by blood and recording in that Prince's domain." | | paragraph | 13 | | substring | "signed in Avaros" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 35 | | parsed | | entry | "6003" | | detail | "lure" | | explanation | "The text mentions the Somnian Cult distributing Dream Dust, which is consistent with the codex, but it does not explicitly state that they lure new members with promises of peace and freedom from suffering, as described in the codex." | | paragraph | 10 | | substring | "distribute Dream Dust" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | inBounds | true | | expectedText | "Prince Lilith, demands more dreamers" | | locationAccurate | false |
| | closestExpected | | entry | "6003" | | detail | "master" | | summary | "The Somnian Cult serves Prince Asmodeus per codex, but Isolde says Prince Lilith." |
| | reason | "detail mismatch: got \"lure\", expected \"master\"" |
| | 36 | | parsed | | entry | "4412" | | detail | "backstory" | | explanation | "The text mentions Aurora moving to London at Eva's behest, which is consistent with the codex, but it does not explicitly mention her reluctantly pursuing Pre-Law at Cardiff University or leaving an abusive ex named Evan, as described in the codex." | | paragraph | 2 | | substring | "moved to London at the behest of her childhood friend Eva" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 2]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 37 | | parsed | | entry | "4413" | | detail | "description" | | explanation | "The text does not explicitly mention Silas' description as a retired intelligence operative turned bar owner, nor does it mention him carrying himself with quiet authority, as described in the codex." | | paragraph | 8 | | substring | "The group dispersed into the London evening." |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 38 | | parsed | | entry | "4414" | | detail | "backstory" | | explanation | "The text does not explicitly mention Eva's backstory, including her master's degree in Ancient History from Oxford or her work as a research assistant at the British Museum's restricted archives, as described in the codex." | | paragraph | 3 | | substring | "holds a master's degree in Ancient History from Oxford" |
| | 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." |
| | reason | "detail mismatch: got \"backstory\", expected \"glasses\"" |
|
| |
| 18.7500% | Precision | True positives: 9/48 | | totalReported | 48 | | truePositives | 9 | | reportedDetails | | 0 | | parsed | | entry | "6001" | | detail | "headquarters" | | explanation | "The text says the Wardens' headquarters is in Westminster Catacombs, but the codex says it is in the Westminster Catacombs, London." | | paragraph | 1 | | substring | "Westminster Catacombs" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 1]" | | 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 | "detail mismatch: got \"headquarters\", expected \"foundingYear\"" |
| | 1 | | parsed | | entry | "6005" | | detail | "headquarters" | | explanation | "The text says the Golden Empress Restaurant's headquarters is in Chinatown, but the codex does not specify a location within Chinatown." | | paragraph | 1 | | substring | "Chinatown, London" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 1]" | | inBounds | true | | expectedText | "our cathedral in Southwark" | | locationAccurate | false |
| | closestExpected | | entry | "6004" | | detail | "headquarters" | | summary | "The Parish Guard HQ is St. Brigid's in Islington per codex, but Cormac says Southwark." |
| | reason | "entry mismatch: got \"6005\", expected \"6004\"" |
| | 2 | | parsed | | entry | "4413" | | detail | "bearing" | | explanation | "The text says Father Cormac has cedar rosary beads, but the codex says he has a rosary made of rowan wood beads." | | paragraph | 8 | | substring | "cedar rosary beads" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 3 | | parsed | | entry | "4415" | | detail | "hair" | | explanation | "The text describes Father Cormac with thinning ginger hair, but the codex does not specify the color of his hair." | | paragraph | 8 | | substring | "thinning ginger hair" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | 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 | "detail mismatch: got \"hair\", expected \"cane\"" |
| | 4 | | parsed | | entry | "4415" | | detail | "dress" | | explanation | "The text says Lucien is wearing a charcoal suit, but the codex says he dresses in tailored charcoal suits, not a single suit." | | paragraph | 8 | | substring | "charcoal suit" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | 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 | "detail mismatch: got \"dress\", expected \"cane\"" |
| | 5 | | parsed | | entry | "2004" | | detail | "faceMarkings" | | explanation | "The text describes the Veil Compass as a small brass compass, which matches the codex, but it does not mention the protective sigils that should be etched on its face." | | paragraph | 10 | | substring | "small brass compass" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 6 | | parsed | | entry | "4417" | | detail | "age" | | explanation | "The text says Tomás treated a Helbound soul last week, which is inconsistent with the codex stating his age as 29, as it implies a timeline not reflected in the static age given in the codex." | | paragraph | 13 | | substring | "last week" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "His scarred right forearm" | | locationAccurate | false |
| | closestExpected | | entry | "4417" | | detail | "scar" | | summary | "Tomás has a scar on his left forearm per codex, but the passage says right forearm." |
| | reason | "detail mismatch: got \"age\", expected \"scar\"" |
| | 7 | | parsed | | entry | "4418" | | detail | "eyeColor" | | explanation | "The text says Nyx has glowing blue eyes, but the codex says they have faintly glowing violet eyes." | | paragraph | 14 | | substring | "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 14]" | | inBounds | true | | expectedText | "their glowing blue eyes" | | locationAccurate | false |
|
| | 8 | | parsed | | entry | "4412" | | detail | "eyeColor" | | explanation | "The text says the Heartstone Pendant has a golden chain, but the codex does not specify the color of the chain, only that it is a silver chain." | | paragraph | 15 | | substring | "golden chain" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 15]" | | 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\"" |
| | 9 | | parsed | | entry | "854" | | detail | "signColor" | | explanation | "The text does not explicitly state \"green neon sign\" for The Raven's Nest, but the codex specifies a distinctive green neon sign, which should be mentioned if accurate." | | paragraph | 16 | | substring | "green neon sign" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 16]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 10 | | parsed | | entry | "861" | | detail | "parkLocation" | | explanation | "The text says the Fae Grove is in Hyde Park, but the codex specifies it is located in Richmond Park." | | paragraph | 1 | | substring | "Hyde Park" |
| | status | "true_positive" | | matchedExpected | | entry | "861" | | detail | "parkLocation" | | summary | "The Fae Grove is in Richmond Park per codex, but the passage says Hyde Park." |
| | location | | extractedText | "Hyde Park" | | inBounds | true | | expectedText | "The Fae Grove in Hyde Park" | | locationAccurate | true |
|
| | 11 | | parsed | | entry | "2006" | | detail | "temperature" | | explanation | "The text says the Fae-Forged Blade is warm at Aurora's hip, but the codex states it is always cold to the touch." | | paragraph | 2 | | substring | "warm at her hip" |
| | status | "true_positive" | | matchedExpected | | entry | "2006" | | detail | "temperature" | | summary | "The Fae-Forged Blade is always cold per codex, but the passage says warm." |
| | location | | extractedText | "warm at her hip" | | inBounds | true | | expectedText | "the Fae-Forged Blade warm at her hip" | | locationAccurate | true |
|
| | 12 | | parsed | | entry | "4414" | | detail | "hair" | | explanation | "The text says Eva is wearing a wool hat, which is not inconsistent with the codex, but it implies that her hair is covered, which should be visible as it is a prominent feature of her character." | | paragraph | 3 | | substring | "wool hat" |
| | 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." |
| | reason | "detail mismatch: got \"hair\", expected \"glasses\"" |
| | 13 | | parsed | | entry | "7001" | | detail | "signedYear" | | explanation | "The text says the Covenant of Separation was from 1066, but the codex states it was signed in the year 1215." | | paragraph | 6 | | substring | "1066" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | 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." |
| | reason | "entry mismatch: got \"7001\", expected \"7002\"" |
| | 14 | | parsed | | entry | "4423" | | detail | "tattoo" | | explanation | "The text mentions Wei-Lin's dragon tattoo, but it should be noted that the codex specifies the tattoo covers his entire back, which may not be visible with his arms folded." | | paragraph | 11 | | substring | "dragon tattoo" |
| | 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 11]" | | inBounds | true | | expectedText | "the dragon tattoo on his chest" | | locationAccurate | false |
|
| | 15 | | parsed | | entry | "6006" | | detail | "headquarters" | | explanation | "The text says Blackthorn Security's headquarters is in Canary Wharf, which is consistent with the codex, but it does not mention the Westminster Catacombs, which is also part of their headquarters as per the codex." | | paragraph | 12 | | substring | "Canary Wharf" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 12]" | | inBounds | true | | expectedText | "the sword inside a circle" | | locationAccurate | false |
| | closestExpected | | 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." |
| | reason | "detail mismatch: got \"headquarters\", expected \"logo\"" |
| | 16 | | parsed | | entry | "4418" | | detail | "form" | | explanation | "The text says Nyx materialized from the shadow of a standing stone, but the codex does not specify that Nyx can take the form of a shadow or if they can physically materialize in such a manner." | | paragraph | 14 | | substring | "materialized from the shadow" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | 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." |
| | reason | "detail mismatch: got \"form\", expected \"eyeColor\"" |
| | 17 | | parsed | | entry | "4422" | | detail | "complexion" | | explanation | "The text describes Father Cormac with dark brown eyes, but the codex specifies his eye color as pale blue." | | paragraph | 8 | | substring | "dark brown eyes" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "his dark brown eyes troubled" | | locationAccurate | false |
| | closestExpected | | entry | "4422" | | detail | "eyeColor" | | summary | "Father Cormac has pale blue eyes per codex, but the passage says dark brown eyes." |
| | reason | "detail mismatch: got \"complexion\", expected \"eyeColor\"" |
| | 18 | | parsed | | entry | "4421" | | detail | "skinTone" | | explanation | "The text does not explicitly mention Yasmin's bronze skin, which is a notable characteristic in the codex." | | paragraph | 10 | | substring | "bronze skin" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | 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." |
| | reason | "detail mismatch: got \"skinTone\", expected \"tattoo\"" |
| | 19 | | parsed | | entry | "855" | | detail | "ruler" | | explanation | "The text correctly identifies Prince Mammon as the ruler of Avaros, but it should be noted that the codex specifies the current location of the Crimson Court as Irath, not Avaros." | | paragraph | 8 | | substring | "Prince Mammon" |
| | status | "true_positive" | | matchedExpected | | entry | "855" | | detail | "ruler" | | summary | "Avaros is Prince Mammon's realm per codex, but Tomás says Prince Belphegor's agents operate there." |
| | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "Prince Belphegor's agents are kidnapping humans" | | locationAccurate | false |
|
| | 20 | | parsed | | entry | "860" | | detail | "password" | | explanation | "The text does not explicitly mention the password \"moonrise\" for Yasmin's Apothecary, which is required for back room access according to the codex." | | paragraph | 10 | | substring | "moonrise" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 21 | | parsed | | entry | "4412" | | detail | "age" | | explanation | "The text describes Isolde as having a three-hundred-year-old Half-Fae body, but the codex states Aurora's age as 25, which may cause confusion regarding Isolde's age." | | paragraph | 15 | | substring | "three-hundred-year-old Half-Fae body" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 15]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 22 | | parsed | | entry | "853" | | detail | "ruler" | | explanation | "The text mentions Prince Belphegor as the ruler of Dymas, which is consistent with the codex, but it should be noted that the current base of operations for the Crimson Court is Irath, not Dymas." | | paragraph | 16 | | substring | "Prince Belphegor" |
| | 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 \"853\", expected \"855\"" |
| | 23 | | parsed | | entry | "859" | | detail | "ruler" | | explanation | "The text correctly identifies Prince Asmodeus as the ruler of Somnia, but it should be noted that the codex specifies the Somnian Cult's master as Prince Asmodeus, which is relevant to the context of the Dream Dust distribution." | | paragraph | 16 | | substring | "Prince Asmodeus" |
| | 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 \"859\", expected \"855\"" |
| | 24 | | parsed | | entry | "4412" | | detail | "hair" | | explanation | "The text does not explicitly mention Maggie's silver-white hair, which is a notable characteristic in the codex." | | paragraph | 2 | | substring | "silver-white, worn in a neat bun" |
| | 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\"" |
| | 25 | | parsed | | entry | "4419" | | detail | "age" | | explanation | "The text describes Isolde as having a three-hundred-year-old Half-Fae body, but the codex specifies Maggie's age as 72, which may cause confusion regarding the characters' ages." | | paragraph | 6 | | substring | "three-hundred-year-old Half-Fae body" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | inBounds | true | | expectedText | "her oak walking stick" | | locationAccurate | false |
| | closestExpected | | entry | "4419" | | detail | "walkingStick" | | summary | "Maggie carries a blackthorn stick per codex, but the passage says oak." |
| | reason | "detail mismatch: got \"age\", expected \"walkingStick\"" |
| | 26 | | parsed | | entry | "4412" | | detail | "height" | | explanation | "The text describes Eva clutching her satchel with both hands, which may imply a size inconsistent with the codex's description of her as 5'4\" tall." | | paragraph | 2 | | substring | "satchel with both hands" |
| | status | "false_positive" | | location | | extractedText | "satchel with both hands" | | inBounds | true | | expectedText | "" | | locationAccurate | true |
|
| | 27 | | parsed | | entry | "6004" | | detail | "headquarters" | | explanation | "The text mentions a cathedral in Southwark, but the codex specifies St. Brigid's Church in Islington as the headquarters for the Parish Guard." | | paragraph | 7 | | substring | "our cathedral in Southwark" |
| | status | "true_positive" | | matchedExpected | | entry | "6004" | | detail | "headquarters" | | summary | "The Parish Guard HQ is St. Brigid's in Islington per codex, but Cormac says Southwark." |
| | location | | extractedText | "[not found in paragraph 7]" | | inBounds | true | | expectedText | "our cathedral in Southwark" | | locationAccurate | false |
|
| | 28 | | parsed | | entry | "4424" | | detail | "eyeColor" | | explanation | "The text says Nyx has glowing blue eyes, but the codex does not specify glowing eyes for any character except Nyx, whose eyes are described as faintly glowing violet." | | paragraph | 14 | | substring | "glowing blue 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 14]" | | inBounds | true | | expectedText | "Her pale blue eyes, unblinking" | | locationAccurate | false |
|
| | 29 | | parsed | | entry | "7005" | | detail | "requirement" | | explanation | "The text says someone became a Shade after being caught between realms, but the codex specifies that the Shade transformation requires the subject to be caught between realms during a failed summoning or portal collapse." | | paragraph | 14 | | substring | "caught between realms" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 30 | | parsed | | entry | "4420" | | detail | "hair" | | explanation | "The text describes Kai's hair as natural black, but the codex specifies his hair as dyed electric-blue in an undercut." | | paragraph | 12 | | 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 12]" | | inBounds | true | | expectedText | "his natural black hair falling into his face" | | locationAccurate | false |
|
| | 31 | | parsed | | entry | "862" | | detail | "ruler" | | explanation | "The text correctly identifies Prince Lilith as the ruler of Luxuria, but it should be noted that the Somnian Cult is associated with Prince Asmodeus, not Prince Lilith." | | 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\"" |
| | 32 | | parsed | | entry | "6001" | | detail | "description" | | explanation | "The text describes the Parish Guard as a secret network of clergy and laypeople, which is consistent with the codex, but it should be noted that the codex specifies the Parish Guard operates independently from the Wardens." | | paragraph | 6 | | substring | "clergy and laypeople" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 6]" | | 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 | "detail mismatch: got \"description\", expected \"foundingYear\"" |
| | 33 | | parsed | | entry | "4412" | | detail | "scar" | | explanation | "The text does not explicitly mention Aurora's small crescent-shaped scar on her left wrist, which is a notable characteristic in the codex." | | paragraph | 2 | | substring | "small crescent-shaped scar on her left wrist" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 2]" | | inBounds | true | | expectedText | "His scarred right forearm" | | locationAccurate | false |
| | closestExpected | | entry | "4417" | | detail | "scar" | | summary | "Tomás has a scar on his left forearm per codex, but the passage says right forearm." |
| | reason | "entry mismatch: got \"4412\", expected \"4417\"" |
| | 34 | | parsed | | entry | "4412" | | detail | "description" | | explanation | "The text does not explicitly mention Aurora's description as cool-headed, intelligent, and known for quick out-of-the-box thinking, which is provided in the codex." | | paragraph | 2 | | substring | "cool-headed, intelligent, and known for quick out-of-the-box thinking" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 2]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 35 | | parsed | | entry | "861" | | detail | "timeBehavior" | | explanation | "The text describes the Fae Grove as having a strange microclimate, but the codex specifies that time moves differently within the grove — an hour inside can be minutes or days outside." | | paragraph | 1 | | substring | "strange microclimate" |
| | 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 | "detail mismatch: got \"timeBehavior\", expected \"parkLocation\"" |
| | 36 | | parsed | | entry | "4414" | | detail | "satchel" | | explanation | "The text mentions Eva's leather satchel, which is consistent with the codex, but it does not explicitly state that it is worn and full of books, as described in the codex." | | paragraph | 3 | | substring | "leather satchel" |
| | 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." |
| | reason | "detail mismatch: got \"satchel\", expected \"glasses\"" |
| | 37 | | parsed | | entry | "4414" | | detail | "nervousHabit" | | explanation | "The text describes Eva's glasses fogging, which is consistent with her wearing glasses, but it does not explicitly mention her nervous habit of tucking her hair behind her left ear, as described in the codex." | | paragraph | 3 | | substring | "her square glasses kept fogging" |
| | 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." |
| | reason | "detail mismatch: got \"nervousHabit\", expected \"glasses\"" |
| | 38 | | parsed | | entry | "4413" | | detail | "signetRing" | | explanation | "The text does not mention Silas' silver signet ring, which he always wears on his right hand according to the codex." | | paragraph | 8 | | substring | "no mention of signet ring" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 39 | | parsed | | entry | "4413" | | detail | "limp" | | explanation | "The text does not mention Silas' slight limp in his left leg from an old knee injury, which is a notable characteristic in the codex." | | paragraph | 8 | | substring | "no mention of limp" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 40 | | parsed | | entry | "4414" | | detail | "glasses" | | explanation | "The text describes Eva's glasses as square, which is consistent with the codex, but it should be noted that round glasses are specified in the codex." | | paragraph | 3 | | substring | "square glasses" |
| | 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 3]" | | inBounds | true | | expectedText | "Her square glasses kept fogging" | | locationAccurate | false |
|
| | 41 | | parsed | | entry | "4417" | | detail | "medallion" | | explanation | "The text mentions Tomás' Saint Christopher medallion, which is consistent with the codex, but it does not explicitly state that he wears it around his neck, as described in the codex." | | paragraph | 13 | | substring | "Saint Christopher medallion" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "His scarred right forearm" | | locationAccurate | false |
| | closestExpected | | entry | "4417" | | detail | "scar" | | summary | "Tomás has a scar on his left forearm per codex, but the passage says right forearm." |
| | reason | "detail mismatch: got \"medallion\", expected \"scar\"" |
| | 42 | | parsed | | entry | "7003" | | detail | "peakActivity" | | explanation | "The text mentions new rifts opening near underground water sources, which is consistent with the codex, but it should be noted that rift points are most active during the winter solstice according to the codex." | | paragraph | 14 | | substring | "three new ones opened near underground water sources" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 14]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 43 | | parsed | | entry | "7004" | | detail | "sealingMethod" | | explanation | "The text mentions a contract signed in Avaros, which is consistent with the codex, but it should be noted that the codex specifies sealing by blood and recording in that Prince's domain." | | paragraph | 13 | | substring | "signed in Avaros" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 13]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 44 | | parsed | | entry | "6003" | | detail | "lure" | | explanation | "The text mentions the Somnian Cult distributing Dream Dust, which is consistent with the codex, but it does not explicitly state that they lure new members with promises of peace and freedom from suffering, as described in the codex." | | paragraph | 10 | | substring | "distribute Dream Dust" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 10]" | | inBounds | true | | expectedText | "Prince Lilith, demands more dreamers" | | locationAccurate | false |
| | closestExpected | | entry | "6003" | | detail | "master" | | summary | "The Somnian Cult serves Prince Asmodeus per codex, but Isolde says Prince Lilith." |
| | reason | "detail mismatch: got \"lure\", expected \"master\"" |
| | 45 | | parsed | | entry | "4412" | | detail | "backstory" | | explanation | "The text mentions Aurora moving to London at Eva's behest, which is consistent with the codex, but it does not explicitly mention her reluctantly pursuing Pre-Law at Cardiff University or leaving an abusive ex named Evan, as described in the codex." | | paragraph | 2 | | substring | "moved to London at the behest of her childhood friend Eva" |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 2]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 46 | | parsed | | entry | "4413" | | detail | "description" | | explanation | "The text does not explicitly mention Silas' description as a retired intelligence operative turned bar owner, nor does it mention him carrying himself with quiet authority, as described in the codex." | | paragraph | 8 | | substring | "The group dispersed into the London evening." |
| | status | "false_positive" | | location | | extractedText | "[not found in paragraph 8]" | | inBounds | true | | expectedText | "" | | locationAccurate | false |
|
| | 47 | | parsed | | entry | "4414" | | detail | "backstory" | | explanation | "The text does not explicitly mention Eva's backstory, including her master's degree in Ancient History from Oxford or her work as a research assistant at the British Museum's restricted archives, as described in the codex." | | paragraph | 3 | | substring | "holds a master's degree in Ancient History from Oxford" |
| | 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." |
| | reason | "detail mismatch: got \"backstory\", expected \"glasses\"" |
|
| |