NPCBank
Explore the Bank
Menu

Manual

One case at a time
The Explorer shows a single benchmark case. Previous, Random, and Next move within the current filtered set, not the whole corpus, so narrowing the filters narrows what you step through.
World, NPC, case
The scope path moves from the world, to the character profile, to the active evaluation case. A world holds characters; a character holds cases.
Shareable links
Filters, the selected case, and the open layer all live in the URL. Copying the address bar reproduces exactly what you are looking at.

The layers of a case

Layers are grouped by who is meant to see them. This split is a property of the data, not a display convenience: the model is never given the judge's material.

NPC input model-visible
Prompt is the user turns as the tested NPC receives them, with the interlocutor and their relationship. Scene and State are the conditions the response is supposed to be sensitive to: location, privacy, audience, timeline window, relationship posture, affect, disclosure boundary, and pressure.
Judge view withheld from the model
Evidence is the source spans an evaluator may rely on. Objectives are the required, allowed, and forbidden behaviours. Rules are the scoring signals, hard-fail families, and policy constraints. Together these are the evaluation contract.
Audit provenance
Warnings are structural checks on the case itself, not judgements about an NPC. Metadata carries identifiers, registry versions, and hashes. JSON is the raw record behind the rendered views.

Reading the apparatus

On the Objectives layer, the conditions this case is bound to run down the outer margin. A gilded row is one that a required objective actually depends on; a plain row is recorded state that drives no required behaviour here. Hover or tab onto either side and the other lights up, so you can see which part of the state a given objective is answerable to.

That link is read from each objective's own basis.condition_fields. It is never guessed: if a case's objectives carry no basis, no rows are gilded and nothing lights.

Reading a status label

Review status describes structural completeness — whether the required fields and evidence are present. It is not a claim that a human verified the case, and it is not a quality tier.

From a recorded example to a local experiment

The Lab presents two recorded replies to the same question under different relationship conditions. Switch branches, compare replies, and inspect their source context. The website does not load models or run inference.

For local use, download the demo, unzip it, and run python3 run.py in its folder. Open http://127.0.0.1:8765/. Python 3.11 or later is required. The included README explains optional local model connections. Replayed outputs are unscored examples; replay is not a new experimental trial.