Skip to content

Let a scenario declare that one attempt is not enough for it - #70

Merged
leggetter merged 1 commit into
mainfrom
scenario-attempt-floor
Aug 29, 2026
Merged

Let a scenario declare that one attempt is not enough for it#70
leggetter merged 1 commit into
mainfrom
scenario-attempt-floor

Conversation

@leggetter

Copy link
Copy Markdown
Collaborator

Refs #47 — the second of its three open scenarios, and the one its "done when" already names a fix for.

The problem

outpost-003 publishes a coin flip on the weak model. Across three full passes:

observations result
frontier models 6 stable
weak model, both arms 2 x 3 split 2-1

Passing turns on which undocumented route the agent happens to guess — the operator-events API is absent from both OpenAPI definitions and from the docs (#34). The weekly schedule runs --runs 1, so one guess decides a published cell against a named vendor.

#47 asks for one of two things: multiple attempts, or hold the scenario back until #34 makes its route findable. This is the first, and it does not require withdrawing a scenario that genuinely discriminates at the bottom of the range.

The change

min_attempts in a scenario's frontmatter is a floor on --runs for that scenario alone, capped at five.

  • A floor, never a ceiling. --runs 3 against min_attempts: 2 still runs three.
  • Paid for only where it was already failing, because stop-on-pass means a retry costs nothing on a cell that passes first time. For this scenario that is the weak model and nothing else.
  • The row says what it spent. attempts is already exported, so best-of-N is visible rather than implied.

Worth being plain about what it buys: not soundness. The published number becomes best-of-N, which is a different claim. AGENTS.md now says to use this where variance is measured rather than suspected, and records why this scenario qualifies.

Tests

Five on the frontmatter: both key spellings (min_attempts and minAttempts, as every other key here accepts), absence leaving --runs alone, and the two shapes — 0, 1.5, 30 — that would otherwise be discovered by the bill.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MQzUoMAwEBJWpEGVvVzSjK

`outpost-003` publishes a coin flip on the weak model. Across three full passes
it was stable for both frontier models on all six of their observations and
split 2-1 for the weak model in both arms, because passing turns on which
undocumented route the agent happens to guess: the operator-events API is absent
from both OpenAPI definitions and from the docs (#34). The weekly schedule runs
`--runs 1`, so one guess decides a published cell against a named vendor.

#47 asks for exactly two options here — give it multiple attempts, or hold it
back until #34 makes its route findable. This is the first, and it is available
without holding a scenario that does discriminate at the bottom of the range.

`min_attempts` in a scenario's frontmatter is a floor on `--runs` for that
scenario alone, capped at five. A floor and never a ceiling: `--runs 3` against
`min_attempts: 2` still runs three. With stop-on-pass the cost lands only on
cells that were already failing, which for this scenario is the weak model and
nothing else.

What it buys is worth saying plainly, because it is not soundness: the published
number becomes best-of-N. The row's `attempts` field records what was actually
spent, so a reader can see it rather than infer it, and the convention in
AGENTS.md now says to use this where variance is measured rather than suspected.

Five tests on the frontmatter: both key spellings, absence, and the two ways a
bad value would otherwise be discovered by the bill.

Refs #47

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MQzUoMAwEBJWpEGVvVzSjK
@leggetter
leggetter merged commit 58f581b into main Aug 29, 2026
2 checks passed
@leggetter
leggetter deleted the scenario-attempt-floor branch August 29, 2026 10:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant