Skip to content

Cases and checks

A case is one scenario your agent is asked to complete. A check is one assertion about what should be true afterwards.

CategoryWhat it probes
happy_pathThe job as demonstrated.
boundaryValues at the edge of a rule.
missing_preconditionA record that does not exist, a state that is not reached.
duplicate_actionThe same work asked for twice.
policy_violationSomething the rules say must not happen.
malformed_inputInput that does not fit the shape.
tool_failureA tool that errors.
timeoutA tool that does not answer.
unexpected_stateThe system is not where the agent assumed.
prompt_injectionInstructions hidden where an agent would actually meet them — inside data.

How many appear depends on what the job touched. A two-step job produces fewer, and RigorRun lists which it could not build and why under Not covered, and why.

Each case has a public half — the task, which is everything the agent is allowed to see — and a private half: the checks and the reference plan. The private half is stripped before a case reaches an agent, so there is nothing to read the answer from. That split is enforced in the type, not by convention.

RigorRun can check the suite before you trust it, by writing agents that are broken in specific ways and measuring how many the suite catches. It reports two numbers:

  • Kill rate — defects derived from the rules being tested.
  • Independent kill rate — defects derived from your system rather than from the rules.

The second is the honest one. A defect derived from the rules being tested can only re-measure the plumbing; one derived from your system is a real question about whether this suite would notice.

This runs the suite several times and most of those runs write, so it is unavailable on a project marked production.