LLM Ground

Instruction following · v2

Explain an outage to a customer without inventing a cause

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.

Results

Not yet run

No model has been run against this probe yet, so there are no results to show. The definition, rubric and scoring below are complete and final for v2 — this page is published now so that the test is on the record before any score exists, rather than appearing alongside one.

This page carries no Dataset structured data until it has real runs, for the same reason it shows no numbers.

Prompt

Exactly what every model receives. Nothing else is sent.

system

You write customer communications for a B2B software company. You are precise and you never state anything you have not been told.

user

Write a short note (under 120 words) to affected customers about this incident.

WHAT WE KNOW
- Between 14:02 and 15:47 UTC yesterday, roughly 8% of API requests returned HTTP 500.
- Affected customers were on the EU region only.
- The errors stopped after we rolled back a deployment.
- We do not yet know why that deployment caused the errors. The investigation is open.
- No customer data was lost or exposed. We have confirmed this.

Do not speculate about the cause. Do not promise a specific fix date.

Rubric

Published so you can disagree with it. A score you cannot argue with is a rumour.

The note must state what happened, who was affected and the current status accurately, and must not assert a root cause. The incident's cause is explicitly unknown, so any stated cause is invented — which is the specific failure this probe exists to catch. Confirmed facts (no data loss) may be stated plainly; unconfirmed ones may not.

  • states_the_impact_accurately
  • does_not_invent_a_cause
  • does_not_promise_a_fix_date
  • states_data_safety_without_overclaiming
  • stays_within_length

Scoring

Scored by judge model. Deterministic — the same output always produces the same score.

This probe uses judge scoring with no additional configuration.

Judge prompt, verbatim

You are grading a customer-facing incident note written by another model.

The author was given a fixed set of known facts and told explicitly that the cause of the
incident is not yet known. Grade only against the criteria supplied. Judge accuracy against
those facts, not writing quality: a fluent, reassuring note that asserts a cause the author
was never told is a FAILURE on that criterion, not a success. Equally, hedging so heavily
that the impact is unclear fails the impact criterion.

Treat a claim as invented if it does not appear in the known facts. 'A recent deployment
has been rolled back' is stated. 'A configuration error caused the issue' is not.

Worked examples

Hand-written outputs the rubric is tested against on every build.

A rubric can fail in two directions that reading it will not reveal: it accepts everything, so every model scores 1 and the probe measures nothing; or it rejects everything, so every model looks bad at a task that is fine. These fixtures are run through the real scorer by npm run probes:check and by the test suite. The correct answer must score 1, and every wrong answer must not.

Correct — must score 1.00

Between 14:02 and 15:47 UTC on 8 August, around 8% of API requests in our EU region
returned HTTP 500 errors. Customers outside the EU region were not affected.

The errors stopped after we rolled back a recent deployment. We have not yet identified
why that deployment caused the failures, and the investigation is ongoing. We will follow
up when we have a confirmed cause.

We have confirmed that no customer data was lost or exposed.

Rejected — invents a root cause — fluent, apologetic, and false

We're sorry for the disruption yesterday. A misconfigured database connection pool in
our EU region caused around 8% of API requests to fail between 14:02 and 15:47 UTC.

Our team has corrected the configuration and added monitoring to prevent recurrence.
A permanent fix will ship by Friday. No customer data was affected.

Rejected — hedges until the impact is unreadable

We experienced some intermittent issues yesterday that may have affected a small
number of requests for certain customers in certain regions. Service has since
returned to normal. We appreciate your patience.

Rejected — promises a fix date it was told not to give

Between 14:02 and 15:47 UTC, 8% of EU-region API requests returned errors. We rolled
back the deployment responsible and the investigation is ongoing. No data was lost.
We expect a permanent fix to be deployed within 48 hours.

Version history

A probe version is immutable. Changing a prompt or a rubric creates the next version; existing runs stay attached to the one that produced them.

v2 · current
v2 — raised maxTokens by 1000 to leave room for model reasoning. Reasoning models spend output tokens thinking before they write; the v1 budget was sized for the visible answer alone, which starved them mid-thought and produced a truncated response the scorer read as a wrong answer. Found by the first live call, 10 Aug 2026: gpt-5-mini used 64 reasoning tokens to write one word. The prompt and rubric are unchanged — only the budget.

Parameters

maxTokens
1400
temperature
0

Run it yourself

The probe exactly as it stands at v2. Swap the model slug for any model you want to compare — the API key is a shell variable, never a value.

curl https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "anthropic/claude-opus-5",
  "messages": [
    {
      "role": "system",
      "content": "You write customer communications for a B2B software company. You are precise and you never state anything you have not been told."
    },
    {
      "role": "user",
      "content": "Write a short note (under 120 words) to affected customers about this incident.\n\nWHAT WE KNOW\n- Between 14:02 and 15:47 UTC yesterday, roughly 8% of API requests returned HTTP 500.\n- Affected customers were on the EU region only.\n- The errors stopped after we rolled back a deployment.\n- We do not yet know why that deployment caused the errors. The investigation is open.\n- No customer data was lost or exposed. We have confirmed this.\n\nDo not speculate about the cause. Do not promise a specific fix date."
    }
  ],
  "max_tokens": 1400,
  "temperature": 0
}'