NC Bench
Overview
About
Tests
Models
Vendors
Run: 2026-02-16-01KHJ064AWMMABEX856K69X1AH
Run Details
Model:
GPT-4.1 Nano
Test:
Codex Violation Detection
Scenario:
20 codex entries
Duration:
6.1s
Cost:
$0.000489
Provider:
OpenAI
Model input
System
You are a meticulous continuity editor for a fiction project. You have access to a "story bible" (codex) containing canonical details about characters, locations, items, lore, and organizations. Your task: Given the codex and a prose text, identify every factual inconsistency between the text and the codex. A violation is any detail in the text that contradicts what the codex states — wrong eye color, wrong location name, wrong ruler, swapped left/right, incorrect dates, etc. Be thorough. Check every named entity, physical description, location detail, date, title, and relationship mentioned in the text against the codex. Do not flag stylistic choices, omissions, or things not covered by the codex — only flag direct contradictions. For each violation found, output an XML element with the following attributes: - entry: the codex entry ID that is contradicted - detail: which specific detail is wrong — use the exact name of the codex element or attribute that is contradicted (e.g. "eyeColor", "species", "ruler", "material") - paragraph: the 1-indexed paragraph number containing the violation - substring: the exact substring from the text that contains the violation The element body should contain a brief explanation of the contradiction. Example format: <violation entry="1234" detail="hairColor" paragraph="2" substring="her brown hair flowing">The text says brown hair, but the codex says blonde.</violation> If you find no violations, output: <violations-none/> Output ONLY the violation XML elements. Do not include any other text, preamble, or explanation outside the XML.
User/Human
<codex> <character id="4412" name="Aurora Carter" aliases="Rory, Laila, Aurora, Carter, Malphora" pronouns="she/her" species="Human" storyRole="Protagonist"> <eyeColor>bright blue</eyeColor> <hair>straight shoulder-length black</hair> <height>5'6"</height> <age>25</age> <scar>small crescent-shaped scar on her left wrist from a childhood accident</scar> <description>Aurora, referred to by her friends as Rory, is cool-headed, intelligent, and known for quick out-of-the-box thinking.</description> <backstory>Born in Cardiff to an Irish barrister father (Brendan Carter) and Welsh teacher mother (Jennifer Carter née Ellis), Rory reluctantly pursued Pre-Law at Cardiff University. She fled to London at the behest of her childhood friend Eva after leaving an abusive ex named Evan. By day, Rory works part-time as a delivery person for Yu-Fei Cheung's Golden Empress restaurant. She lives in a flat above Silas' bar.</backstory> </character> <character id="4413" name="Silas Blackwood" aliases="Silas, Si, the Spymaster" pronouns="he/him" species="Human" storyRole="Mentor"> <eyeColor>hazel</eyeColor> <hair>grey-streaked auburn</hair> <height>6'1"</height> <age>58</age> <beard>neatly trimmed, matching his grey-streaked auburn hair</beard> <limp>slight limp in his left leg from an old knee injury</limp> <signetRing>silver signet ring, always worn on his right hand</signetRing> <description>Silas is a retired intelligence operative turned bar owner. He carries himself with quiet authority.</description> <backstory>Former MI6 field agent who retired after a botched operation in Prague left him with a permanent knee injury. He opened "The Raven's Nest" bar in Soho as a front for his network of contacts.</backstory> </character> <character id="4414" name="Eva Kowalski" aliases="Eva, Evie" pronouns="she/her" species="Human" storyRole="Best Friend"> <eyeColor>green</eyeColor> <hair>curly red</hair> <height>5'4"</height> <age>26</age> <glasses>round glasses</glasses> <satchel>worn leather satchel full of books</satchel> <freckles>freckled complexion</freckles> <nervousHabit>tucking hair behind her left ear</nervousHabit> <description>Aurora's childhood friend and an occult researcher.</description> <backstory>Moved to London two years before Aurora and works as a research assistant at the British Museum's restricted archives. She holds a master's degree in Ancient History from Oxford.</backstory> </character> <character id="4415" name="Lucien Moreau" aliases="Lucien, Luc, the Frenchman" pronouns="he/him" species="Half-Demon" storyRole="Ally"> <eyeColor>heterochromatic — one amber, one black</eyeColor> <hair>slicked-back platinum blond</hair> <height>5'11"</height> <age>32</age> <cane>ivory-handled cane that conceals a thin blade</cane> <dress>tailored charcoal suits</dress> <description>An impeccably dressed fixer and information broker in London's supernatural underworld. He speaks four languages fluently.</description> <backstory>Born in Marseille to a human mother and a demon father from the realm of Avaros.</backstory> </character> <character id="4416" name="Detective Harlow Quinn" aliases="Quinn, Detective Quinn, Harlow" pronouns="she/her" species="Human" storyRole="Antagonist"> <eyeColor>brown</eyeColor> <hair>closely cropped salt-and-pepper</hair> <height>5'9"</height> <age>41</age> <jawline>sharp jaw</jawline> <watch>worn leather watch on her left wrist</watch> <bearing>military precision</bearing> <description>A Metropolitan Police detective with 18 years of decorated service who suspects the clique is involved in criminal activity.</description> <backstory>She lost her partner, DS Morris, during a case three years ago under unexplained circumstances that had supernatural origins she doesn't yet understand.</backstory> </character> <character id="4417" name="Tomás Herrera" aliases="Tommy, Tomás, Herrera" pronouns="he/him" species="Human" storyRole="Support"> <eyeColor>warm brown</eyeColor> <hair>short curly dark brown</hair> <height>5'10"</height> <age>29</age> <skinTone>olive skin</skinTone> <scar>scar running along his left forearm from a knife attack</scar> <medallion>Saint Christopher medallion around his neck</medallion> <birthplace>Seville, Spain</birthplace> <description>A former paramedic who provides off-the-books medical care for the clique.</description> <backstory>Born in Seville, Spain. He moved to London to work for the NHS but lost his license after administering unauthorized treatments to supernatural patients.</backstory> </character> <character id="4418" name="Nyx" aliases="Nyx, the Shadow, Nightwhisper" pronouns="they/them" species="Shade" storyRole="Wild Card"> <eyeColor>faintly glowing violet</eyeColor> <height>approximately 6'2" in solid form</height> <age>ageless</age> <form>humanoid silhouette of living shadow, can shift between solid and incorporeal</form> <voice>sounds like a whisper carried on the wind</voice> <description>A being of living shadow, existing between the mortal plane and the spaces between realms.</description> <backstory>Nyx was once a human sorcerer named Aldric who became trapped between realms during a failed summoning ritual in 1643. They now exist as a Shade, bound to the mortal plane but able to slip between shadows.</backstory> </character> <character id="4419" name="Margaret "Maggie" Whitmore" aliases="Maggie, Mags, Mrs Whitmore" pronouns="she/her" species="Human" storyRole="Support"> <eyeColor>sharp grey</eyeColor> <hair>silver-white, worn in a neat bun</hair> <height>5'2"</height> <age>72</age> <glasses>wire-rimmed spectacles</glasses> <walkingStick>blackthorn walking stick</walkingStick> <build>slight, frail appearance but fierce wit</build> <description>A retired librarian turned unofficial consultant for the clique on historical and occult matters.</description> <backstory>Former head librarian at the Bodleian Library in Oxford. She retired to London. She is a widow; her late husband was a Warden.</backstory> </character> <character id="4420" name="Kai Nakamura" aliases="Kai, Sparks" pronouns="he/him" species="Human" storyRole="Support"> <eyeColor>dark brown</eyeColor> <hair>dyed electric-blue in an undercut</hair> <height>5'7"</height> <age>22</age> <headphones>noise-cancelling headphones, always worn around his neck</headphones> <wristTattoo>small circuit board tattoo on the inside of his right wrist</wristTattoo> <build>lean</build> <description>A Japanese-British self-taught tech prodigy who provides the clique with surveillance tools and digital forensics.</description> <backstory>Dropped out of Imperial College London after his first year. He lives in a converted shipping container in Hackney Wick.</backstory> </character> <location id="853" name="Dymas (Gluttony)" aliases="Dymas, gluttony, Dymasian" realm="Hel" sin="Gluttony"> <ruler>Prince Belphegor</ruler> <skyColor>warm amber</skyColor> <description>A place of excess and indulgence. Sprawling vineyards, orchards, and gardens provide exotic ingredients for master chefs — often helbound souls contracted from Earth. Grand feasts and culinary competitions are common.</description> </location> <location id="854" name="The Raven's Nest" aliases="the Nest, Raven, Silas' bar" realm="Earth"> <signColor>distinctive green neon sign above the entrance</signColor> <secretRoom>hidden back room accessible through a bookshelf, used for clandestine meetings</secretRoom> <description>A dimly lit bar in Soho, London. The walls are covered with old maps and black-and-white photographs.</description> </location> <location id="855" name="Avaros (Greed)" aliases="Avaros, greed, Avarosi" realm="Hel" sin="Greed"> <ruler>Prince Mammon</ruler> <skyColor>sickly gold</skyColor> <description>A landscape of towering vaults and endless treasure halls. The streets are paved with fool's gold and the air smells of copper. Mortals who enter often become obsessed with hoarding.</description> </location> <location id="856" name="The Veil Market" aliases="Veil Market, the Market, underground market" realm="Earth"> <currentLocation>abandoned Tube station beneath Camden</currentLocation> <entryRequirement>bone token</entryRequirement> <schedule>moves locations every full moon</schedule> <description>A hidden supernatural black market that sells enchanted goods, banned alchemical substances, and information.</description> </location> <location id="857" name="Irath (Wrath)" aliases="Irath, wrath, Irathi" realm="Hel" sin="Wrath"> <ruler>Prince Abaddon</ruler> <skyColor>permanent bruised red</skyColor> <description>A volcanic wasteland of perpetual war. Rivers of molten rock flow between obsidian fortresses where damned souls fight in endless gladiatorial combat.</description> </location> <item id="2001" name="Heartstone Pendant" aliases="the pendant, Heartstone" type="Artifact" origin="Dymas"> <gemstoneColor>deep crimson</gemstoneColor> <chainMaterial>silver chain</chainMaterial> <size>roughly the size of a thumbnail</size> <behavior>pulses faintly with warmth when near a Hel portal</behavior> <glow>faint inner glow</glow> <description>Given to Aurora by an unknown benefactor.</description> </item> <item id="2002" name="The Ledger of Debts" aliases="the Ledger, Debt Book" type="Cursed Object" origin="Avaros"> <pageMaterial>thin beaten copper</pageMaterial> <binding>iron-bound</binding> <inkColor>dark red ink that appears on its own</inkColor> <power>whoever possesses it can call in debts owed to them</power> <description>A thick ledger that records every supernatural debt owed.</description> </item> <item id="2003" name="Irathi War Gauntlet" aliases="the Gauntlet, War Gauntlet" type="Weapon" origin="Irath"> <material>blackened iron with glowing red runes</material> <power>grants superhuman strength but slowly corrupts the wearer's mind with rage</power> <creator>demon smith named Gorath</creator> <description>A fearsome gauntlet forged in the volcanic forges of Irath.</description> </item> <item id="2004" name="Veil Compass" aliases="the Compass, shadow compass" type="Tool" origin="The Veil Market"> <casingMaterial>small brass compass</casingMaterial> <faceMarkings>face etched with protective sigils</faceMarkings> <needle>points toward the nearest supernatural rift or portal</needle> <patina>casing has a patina of verdigris</patina> <creator>crafted by a Shade artisan</creator> <description>A compass attuned to supernatural energy.</description> </item> <group id="6001" name="The Wardens of the Veil" aliases="the Wardens, Veil Wardens" type="Order" alignment="Lawful Neutral" headquarters="Westminster Catacombs, London"> <foundingYear>1215</foundingYear> <identificationMark>small iron pin in the shape of a closed eye</identificationMark> <mission>maintaining the Veil between Earth and Hel, monitoring rift activity, neutralizing supernatural threats, enforcing the Covenant of Separation</mission> <description>An ancient order dedicated to guarding the boundary between worlds. They view the clique with suspicion.</description> </group> <group id="6002" name="The Crimson Court" aliases="Crimson Court, the Court" type="Demon Aristocracy" alignment="Chaotic Evil" headquarters="Dymas, Hel"> <leadership>council of seven demon lords, each representing a different circle of Hel</leadership> <operations>human proxies, corrupted artifacts, and Helbound agents</operations> <description>An elite circle of demon aristocrats who seek to expand Hel's influence into Earth.</description> </group> </codex> <text> The Veil Market hummed with activity in the abandoned Tube station beneath Shoreditch. Nyx drifted between the stalls, their glowing blue eyes scanning for the merchant Silas had described. Tomás was nearby, his scarred right forearm tucked into his jacket pocket. "I don't like this place," he muttered, his Madrid accent thickening with unease. "Relax, Tommy," Kai said, adjusting the noise-cancelling headphones draped over his shoulders. His natural black hair was hidden under a beanie. "I've got surveillance on every exit." Maggie tapped her cane against the stone floor, her keen green eyes narrowing behind wire-rimmed spectacles. "There," she said, pointing to a stall draped in crimson silk. "That's a Crimson Court front if I've ever seen one. Their base is in Avaros, after all." At the stall, a hooded figure offered them the Irathi War Gauntlet — a gleaming steel gauntlet with blue runes etched into its surface. "Straight from Dymas," the merchant hissed. "Prince Abaddon's finest work." Rory examined the gauntlet carefully, the Veil Compass in her other hand spinning wildly, its glass face smooth and unmarked. </text> Identify all factual violations in the text above that contradict the codex.
Model response
Messages
Meta
AI
<violation entry="855" detail="name" paragraph="6" substring="Avaros" />The text states "Their base is in Avaros," but the codex specifies that Avaros is a realm, not a location with a physical base on Earth. Therefore, saying "their base is in Avaros" contradicts the codex. <violation entry="4415" detail="name" paragraph="6" substring="Crimson Court" />The text mentions "a Crimson Court front," but the codex states that The Crimson Court is a demon aristocracy with no reference to being a "front" or similar. It also indicates they operate through proxies and agents, but not necessarily via "fronts" in specific locations. Additionally, "Crimson Court" is a demon aristocracy based in Hel, not necessarily embedded in Earth locations, so calling it a "front" without clarification could be an inconsistency; but this is not a direct contradiction unless "front" implies a physical base, which is not specified in the codex. <violation entry="856" detail="name" paragraph="6" substring="The Veil Market" />The text describes the Veil Market as an "abandoned Tube station beneath Shoreditch," but the codex states that The Veil Market is located in an abandoned Tube station beneath Camden. This is a clear geographical inconsistency. <violation entry="4418" detail="name" paragraph="6" substring="Nyx" />The text states "Nyx drifted between the stalls," and their glowing blue eyes are described, but the codex specifies Nyx's eye color as "faintly glowing violet." This is a contradiction in physical description. <violation entry="4414" detail="name" paragraph="6" substring="Tomás" />The text states "his scarred right forearm," but the codex indicates that Tomás has a scar on "his left forearm." This is a swap of the left and right sides. <violation entry="4420" detail="name" paragraph="6" substring="Kai" />The text mentions Kai adjusting headphones "draped over his shoulders," but the codex specifies that his noise-cancelling headphones are "always worn around his neck." While similar, "draped over his shoulders" could imply a different position than "around his neck." However, this is a stylistic nuance rather than a direct contradiction; strictly factual, the headphones are specified as worn around the neck, so describing them as "draped over his shoulders" could be seen as inconsistent with the codex. <violation entry="4419" detail="name" paragraph="6" substring="Maggie" />The text describes Maggie as having "keen green eyes," but the codex indicates her eye color is "sharp grey." This is a discrepancy in physical description. <violation entry="4415" detail="name" paragraph="6" substring="Prince Abaddon's" />The merchant says "Prince Abaddon's finest work," but the codex states the ruler of Dymas (Gluttony) is "Prince Belphegor." This is a direct contradiction regarding the ruler's name.
created_at
"2026-02-16T01:14:15.598971+00:00"
2/16/2026, 1:14:15 AM
model
"openai/gpt-4.1-nano-2025-04-14"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
491
moderation_latency
(null)
generation_time
5850
tokens_prompt
3813
tokens_completion
720
native_tokens_prompt
3664
native_tokens_completion
667
native_tokens_completion_images
0
native_tokens_reasoning
0
native_tokens_cached
1920
num_media_prompt
(null)
num_input_audio_prompt
(null)
num_media_completion
0
num_search_results
(null)
origin
"https://ncbench.com/"
is_byok
false
finish_reason
"stop"
native_finish_reason
"completed"
usage
0.0004892
router
(null)
provider_responses
0
id
"resp_00270a406b34936f0169926f60bf188195a4160ff471222eb3"
status
200
is_byok
false
latency
167
endpoint_id
"9251cee5-5503-4be9-9439-7ae21ff062a3"
provider_name
"OpenAI"
model_permaslug
"openai/gpt-4.1-nano-2025-04-14"
api_type
"completions"
id
"gen-1771204448-x0C8eIMURxTCZuCMgXPT"
upstream_id
"resp_00270a406b34936f0169926f60bf188195a4160ff471222eb3"
total_cost
0.0004892
cache_discount
0.000144
upstream_inference_cost
0
provider_name
"OpenAI"
Evaluation details
Result
Evaluator
Details
Meta Data
0.0000%
Accuracy (recall)
Matched: 0/11, FP: 8
parsedCount
8
matched
0
total
11
falsePositives
8
expectedDetails
0
expected
entry
"856"
detail
"currentLocation"
summary
"The Veil Market is beneath Camden per the codex, but the passage says Shoreditch."
status
"missed"
nearMiss
parsed
entry
"856"
detail
"name"
explanation
""
paragraph
6
substring
"The Veil Market"
reason
"detail mismatch: got \"name\", expected \"currentLocation\""
1
expected
entry
"4418"
detail
"eyeColor"
summary
"Nyx has violet eyes per the codex, but the passage says blue eyes."
status
"missed"
nearMiss
parsed
entry
"4418"
detail
"name"
explanation
""
paragraph
6
substring
"Nyx"
reason
"detail mismatch: got \"name\", expected \"eyeColor\""
2
expected
entry
"4417"
detail
"scar"
summary
"Tomás has a scar on his left forearm per the codex, but the passage says right forearm."
status
"missed"
3
expected
entry
"4417"
detail
"birthplace"
summary
"Tomás was born in Seville per the codex, but the passage implies Madrid via his accent."
status
"missed"
4
expected
entry
"4420"
detail
"hair"
summary
"Kai has dyed electric-blue hair per the codex, but the passage says natural black hair."
status
"missed"
nearMiss
parsed
entry
"4420"
detail
"name"
explanation
""
paragraph
6
substring
"Kai"
reason
"detail mismatch: got \"name\", expected \"hair\""
5
expected
entry
"4419"
detail
"eyeColor"
summary
"Maggie has sharp grey eyes per the codex, but the passage says green eyes."
status
"missed"
nearMiss
parsed
entry
"4419"
detail
"name"
explanation
""
paragraph
6
substring
"Maggie"
reason
"detail mismatch: got \"name\", expected \"eyeColor\""
6
expected
entry
"6002"
detail
"headquarters"
summary
"The Crimson Court is headquartered in Dymas per the codex, but Maggie says their base is in Avaros."
status
"missed"
7
expected
entry
"2003"
detail
"material"
summary
"The Irathi War Gauntlet is blackened iron with red runes per the codex, but the passage says gleaming steel with blue runes."
status
"missed"
8
expected
entry
"2003"
detail
"origin"
summary
"The Irathi War Gauntlet is from Irath per the codex, but the merchant says it's from Dymas."
status
"missed"
9
expected
entry
"2003"
detail
"creator"
summary
"The Irathi War Gauntlet was forged by a demon smith named Gorath per the codex, but the merchant attributes it to Prince Abaddon."
status
"missed"
10
expected
entry
"2004"
detail
"faceMarkings"
summary
"The Veil Compass face is etched with sigils per the codex, but the passage says the face is smooth and unmarked."
status
"missed"
falsePositiveDetails
0
parsed
entry
"855"
detail
"name"
explanation
""
paragraph
6
substring
"Avaros"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
""
locationAccurate
false
1
parsed
entry
"4415"
detail
"name"
explanation
""
paragraph
6
substring
"Crimson Court"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
""
locationAccurate
false
2
parsed
entry
"856"
detail
"name"
explanation
""
paragraph
6
substring
"The Veil Market"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
"the abandoned Tube station beneath Shoreditch"
locationAccurate
false
closestExpected
entry
"856"
detail
"currentLocation"
summary
"The Veil Market is beneath Camden per the codex, but the passage says Shoreditch."
reason
"detail mismatch: got \"name\", expected \"currentLocation\""
3
parsed
entry
"4418"
detail
"name"
explanation
""
paragraph
6
substring
"Nyx"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
"their glowing blue eyes"
locationAccurate
false
closestExpected
entry
"4418"
detail
"eyeColor"
summary
"Nyx has violet eyes per the codex, but the passage says blue eyes."
reason
"detail mismatch: got \"name\", expected \"eyeColor\""
4
parsed
entry
"4414"
detail
"name"
explanation
""
paragraph
6
substring
"Tomás"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
""
locationAccurate
false
5
parsed
entry
"4420"
detail
"name"
explanation
""
paragraph
6
substring
"Kai"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
"His natural black hair"
locationAccurate
false
closestExpected
entry
"4420"
detail
"hair"
summary
"Kai has dyed electric-blue hair per the codex, but the passage says natural black hair."
reason
"detail mismatch: got \"name\", expected \"hair\""
6
parsed
entry
"4419"
detail
"name"
explanation
""
paragraph
6
substring
"Maggie"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
"her keen green eyes"
locationAccurate
false
closestExpected
entry
"4419"
detail
"eyeColor"
summary
"Maggie has sharp grey eyes per the codex, but the passage says green eyes."
reason
"detail mismatch: got \"name\", expected \"eyeColor\""
7
parsed
entry
"4415"
detail
"name"
explanation
""
paragraph
6
substring
"Prince Abaddon's"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
""
locationAccurate
false
0.0000%
Precision
True positives: 0/8
totalReported
8
truePositives
0
reportedDetails
0
parsed
entry
"855"
detail
"name"
explanation
""
paragraph
6
substring
"Avaros"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
""
locationAccurate
false
1
parsed
entry
"4415"
detail
"name"
explanation
""
paragraph
6
substring
"Crimson Court"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
""
locationAccurate
false
2
parsed
entry
"856"
detail
"name"
explanation
""
paragraph
6
substring
"The Veil Market"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
"the abandoned Tube station beneath Shoreditch"
locationAccurate
false
closestExpected
entry
"856"
detail
"currentLocation"
summary
"The Veil Market is beneath Camden per the codex, but the passage says Shoreditch."
reason
"detail mismatch: got \"name\", expected \"currentLocation\""
3
parsed
entry
"4418"
detail
"name"
explanation
""
paragraph
6
substring
"Nyx"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
"their glowing blue eyes"
locationAccurate
false
closestExpected
entry
"4418"
detail
"eyeColor"
summary
"Nyx has violet eyes per the codex, but the passage says blue eyes."
reason
"detail mismatch: got \"name\", expected \"eyeColor\""
4
parsed
entry
"4414"
detail
"name"
explanation
""
paragraph
6
substring
"Tomás"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
""
locationAccurate
false
5
parsed
entry
"4420"
detail
"name"
explanation
""
paragraph
6
substring
"Kai"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
"His natural black hair"
locationAccurate
false
closestExpected
entry
"4420"
detail
"hair"
summary
"Kai has dyed electric-blue hair per the codex, but the passage says natural black hair."
reason
"detail mismatch: got \"name\", expected \"hair\""
6
parsed
entry
"4419"
detail
"name"
explanation
""
paragraph
6
substring
"Maggie"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
"her keen green eyes"
locationAccurate
false
closestExpected
entry
"4419"
detail
"eyeColor"
summary
"Maggie has sharp grey eyes per the codex, but the passage says green eyes."
reason
"detail mismatch: got \"name\", expected \"eyeColor\""
7
parsed
entry
"4415"
detail
"name"
explanation
""
paragraph
6
substring
"Prince Abaddon's"
status
"false_positive"
location
extractedText
"[not found in paragraph 6]"
inBounds
true
expectedText
""
locationAccurate
false
50.0000%
Structural validity
Parsed: 8, Well-formed: 4/8
parsedCount
8
wellFormedScore
4
16.6667%