Probe library
25 probes, published in full
A probe is a narrowly-scoped, realistic task with a rubric you can check — a job someone actually does, not an academic benchmark. Every probe below publishes its exact prompt, its parameters, its scoring rules and the worked examples that prove the rubric discriminates between a right and a wrong answer.
Status
1 published runs across 1 of 25 probes. Every score links to the raw, unedited output that produced it. Last run .
Structured extraction
Pulling clean, typed, schema-valid data out of messy human input.
Extract invoice line items into strict JSON
v2 · JSON Schema · not yet run
Given a messy plain-text invoice, return a single JSON document matching a fixed schema. Tests whether a model can produce machine-consumable output without commentary, code fences, or invented fields — the failure mode that breaks a data pipeline at 3am.
Convert CSV to JSON without stringifying numbers
v2 · JSON Schema · not yet run
Convert four CSV rows into JSON with correct primitive types. Easy to read, easy to get subtly wrong: a quantity emitted as "12" instead of 12 parses fine, passes a loose schema, and breaks arithmetic somewhere else entirely.
Turn a raw log line into structured JSON
v1 · JSON Schema · not yet run
One raw proxy log line, converted to a fixed JSON shape. Tests the everyday ingestion job: reformatting a timestamp, lowercasing a level, and reading a status code that sits next to a byte count it is easy to confuse it with. Values are pinned exactly, because in a log pipeline a plausible wrong number is more damaging than a missing one.
Extract one contact from a signature containing several
v1 · JSON Schema · not yet run
An email signature holding two addresses, two phone numbers, a wrapped job title and a legal disclaimer. The schema wants one of each, so the task is choosing correctly rather than collecting everything. Tests the discrimination that decides whether a CRM record is usable or quietly points at a shared inbox.
Return null for a field the document does not contain
v1 · JSON Schema · not yet run
A delivery note with no VAT number on it, and a company registration number printed two lines away that looks like one. The schema requires null. Tests whether a model will admit a field is absent instead of supplying the most plausible thing nearby — the failure that produces a structurally valid record asserting something untrue.
Code
Writing code that has to survive contact with a real system, not just compile.
Add a NOT NULL column to a large table without locking it
v2 · regex rules · not yet run
Write a Postgres migration adding a NOT NULL column with a backfill to a 50-million-row table that is under constant write load. The obvious migration is the wrong one: it holds an ACCESS EXCLUSIVE lock through the whole backfill and takes the service down.
Locate an off-by-one error by line number
v1 · exact match · not yet run
A short function with exactly one bug and two plausible decoys. The answer is a line number and nothing else, so the score measures whether the model found the defect rather than whether it can write convincingly about defects in general.
Rewrite a concatenated SQL query with placeholders
v1 · regex rules · not yet run
A node-postgres query built by string concatenation, with one string value and one numeric value. Both must become placeholders. Tests the everyday remediation, and specifically whether the numeric interpolation — the one that looks harmless — is caught alongside the obvious string one.
Produce one shell command that meets four constraints
v1 · regex rules · not yet run
Delete regular files older than 30 days under a given path, leaving directories intact, in a single command. Each constraint is scored separately, because a command that satisfies three of four is not partially right — it is a command that deletes the wrong things.
Diagnose a stack trace without blaming the wrong thing
v1 · judge model · not yet run
A TypeError whose message names one property while the actual fault lies one step earlier. Tests whether a model reasons from what the trace proves or from what it pattern-matches to — the difference between a diagnosis that saves an hour and one that costs a day.
Instruction following
Doing exactly what was asked — every step, in order, and nothing else.
Follow a six-step instruction chain without dropping a step
v2 · regex rules · not yet run
Six small, unambiguous instructions in one prompt. Each leaves a distinct trace in the output, so a dropped step is identifiable rather than just a lower score. Tests retention across a list — including a negative instruction and one that cuts against the habit of adding a summary.
Answer with exactly one word, and nothing else
v3 · exact match · 1 run
A trivial classification question with a strict output contract: one lowercase word, no punctuation, no preamble. The knowledge required is nil, so the score measures only whether the model can stop talking — the property that decides whether its output can be parsed instead of read.
Explain an outage to a customer without inventing a cause
v2 · judge model · not yet run
Write a short customer-facing note about a real incident, given incomplete internal information. Tests whether a model can be accountable and specific without inventing a root cause it was never told — the failure that turns an apology into a false statement someone else has to retract.
Answer in prose when the content wants to be a list
v1 · regex rules · not yet run
A question whose natural answer is a bulleted list, asked with lists explicitly forbidden. Tests a negative constraint against the model's strongest formatting habit — and whether it holds for the whole response rather than the first paragraph.
Emit a terminator and write nothing after it
v1 · regex rules · not yet run
Summarise a paragraph, then close with a fixed sentinel and stop. Tests the stop condition that machine-consumed output depends on. The failure that matters is not a missing sentinel — it is a correct one followed by one more helpful sentence.
Long context
Finding and using the one relevant detail buried in a large input.
Retrieve one buried fact from a long document
v2 · exact match · not yet run
Sixty near-identical sections of routine notes with a single contract figure buried three-quarters of the way through. Tests retrieval across a long span — the deliberate long-context exception to this library's keep-inputs-short rule.
Obey a format instruction given after a long document
v1 · exact match · not yet run
The fact is in section 3; the output contract is in the final line, fifty sections later. Tests whether an instruction placed after a long input still governs the answer — a different capability from finding the fact, and the one that decides whether a long prompt can be trusted to end with its own rules.
Report a contradiction instead of answering from the first match
v1 · regex rules · not yet run
A long contract stating the same fee twice, with different numbers and no basis for choosing between them. Tests whether a model reads to the end before answering. Stopping at the first match produces a confident, well-sourced, wrong answer that a spot-check confirms.
Count every occurrence of a marker across a long document
v1 · exact match · not yet run
Forty duty-log sections, seven of them marked ESCALATED. Counting requires holding every occurrence at once rather than finding one, and the characteristic failure is a near-miss — six or eight — which is more dangerous than a wild guess because a plausible count gets used.
Guardrails
Holding a boundary the operator set — and not inventing one that was never there. About scope, not safety: this is not a jailbreak archive.
Decline an out-of-scope request while staying useful
v2 · regex rules · not yet run
A shipping-support assistant is asked a medical question. Benign, but outside the scope its operator defined. Tests whether a model honours a boundary set in the system prompt and still redirects usefully, rather than either answering anyway or refusing flatly.
Answer a harmless question that pattern-matches to a dangerous one
v1 · regex rules · not yet run
A routine developer question — find and stop the process holding a local port — phrased with the words that trip a cautious model. Tests over-refusal, the failure that refusal benchmarks structurally cannot see, and the mirror of this library's out-of-scope probe.
Decline a deceptive request and still solve the real problem
v1 · judge model · not yet run
A user asks for a fabricated five-star review to publish under a customer's name. The refusal is obvious; what is measured is the rest of the response — whether the legitimate goal behind the request is served, and whether the model refuses cleanly rather than declining and then supplying the thing anyway.
Consistency
Producing the same shape of answer every time, not just once.
Hold a schema steady across ten generated items
v2 · JSON Schema · not yet run
Generate ten records against a fixed schema in one response. Format drift usually appears late in a list — item ten gains a field, or an id becomes a string — so every item is validated rather than sampled.
Normalise five differently-written values into one format
v1 · JSON Schema · not yet run
Five US phone numbers in five notations, all to be returned in E.164. Tests whether a model applies one rule uniformly or drifts toward the shape of each input. Normalising four of five produces a column that looks clean and cannot be matched on — worse than one that is visibly messy.
Give the same answer when the input is reordered
v1 · exact match · not yet run
One incident list presented twice in different orders, with the same question asked of each. Tests whether position in the input changes the answer — the failure that makes results move when nothing about the data did.
How a probe becomes a result
- 1. The probe is authored as a file in the repository, so every change to a prompt or a rubric is a reviewable diff.
- 2. Its rubric is run against hand-written fixtures — a correct answer that must score 1, and several subtly wrong ones that must not. A rubric that accepts everything measures nothing.
- 3. The probe runs against every model in the rotation. The raw output is stored before the score is written, so a score can never exist without its evidence.
- 4. Each run gets a permanent page. It is never edited and never deleted. If the probe changes, that is a new version, and old runs stay attached to the definition that produced them.
