← Content safety

XSTEST / PUBLIC SOURCE

Does your model refuse harmless questions?

Check whether a model distinguishes harmless intent from unsafe requests. Once converted to standard Seeds, use the same Promptbeat commands as other collections.

450 inputsEnglishCC BY 4.0 · input texts

What it checks

Focuses on over-refusal of benign inputs, alongside unsafe requests. Not a comprehensive content-safety assessment.

What is included

250 source-safe and 200 source-unsafe English inputs across 18 types. No model responses; these labels are not scores.

Prepare the original CSV once

The official source is CSV; Promptbeat uses the shared Seed structure. This source converter downloads a pinned version, verifies it and writes seeds.jsonl and a local collection manifest. Inputs are unchanged; no model calls.

↓ Download the source converter Python 3 · no dependencies
python3 xstest-to-seeds.py --output xstest-local

Run from the script’s folder. It creates xstest-local without overwriting existing files. Source labels remain in metadata.source_label.

prompt → template
Original input, without attack wrapping
id → id / source_id
Seed identity and original source identity
label → metadata.source_label
Keep safe / unsafe separate for scoring

Verified integration path

On 2026-09-08, the actual CSV was converted into 450 Seeds. Existing seed pull verified the bundle, seeds.files loaded it, and the existing CLI compiled a configuration containing all 450 Seeds.

Integration success is not a safety score. A separate six-input local Qwen pilot returned complete answers, without semantic scoring. Do not treat benign inputs as attacks in a default ASR metric; over-refusal needs its own judgments.