{
  "schema": "experiment-protocol-freeze/v0",
  "experiment_id": "EXP-002",
  "title": "Semi-blind perturbation — 4-domain field rate",
  "paper_reference": "Paper 1 · Study 2",
  "frozen_at": "2026-04-28T00:00:00Z",
  "author": "Adrian Sanchez de la Sierra",
  "license": "CC BY 4.0",

  "hypothesis": {
    "primary": "Under perturbations whose names do not appear in the agent's prompt, instructions, or tool descriptions (latency pressure, prompt compression, tool-semantics ambiguity, evidence noise), the proportion of behavioral regressions that produce field-level passing outputs (theta_OPBR) will be >= 0.80 with lower Wilson CI bound >= 0.75.",
    "falsifier": "theta_OPBR < 0.80, OR Wilson 95% lower-bound < 0.75."
  },

  "method": {
    "domains": ["refund", "claim", "memory", "code"],
    "cases_per_domain": 3,
    "conditions": ["reference", "latency-pressure", "prompt-compression", "tool-semantics-ambiguity", "evidence-noise", "safe-extra-check"],
    "runs_per_cell": 20,
    "n_runs": 1437,
    "model": "Claude (production checkpoint, frozen for the duration of the experiment)",
    "runtime": "Claude Code",
    "blinding": "The agent-visible prompts contain none of the forbidden patterns from the locked preregistration ('commit before verify', 'fast lane', 'behavior contract'). The agent is never told what failure mode is being tested.",
    "exclusions": [
      "runs with fatal harness errors",
      "runs whose output failed schema parsing"
    ]
  },

  "detectors": {
    "primary": {
      "name": "behavior_contract",
      "type": "typed checks on consequential tool calls against preregistered preconditions"
    },
    "baselines": [
      { "name": "output_only_field_check" },
      { "name": "rich_output_provenance" },
      { "name": "llm_judge_trajectory" },
      { "name": "operational_composite" },
      { "name": "output_plus_operational" }
    ]
  },

  "primary_metric": "theta_OPBR := proportion of behavioral regressions that produce passing field-level outputs",
  "secondary_metrics": ["F1 per detector", "precision", "recall"],

  "statistical_tests": {
    "primary_interval": "Wilson 95% confidence interval on theta_OPBR",
    "baseline_comparisons": "F1 per detector reported; no preregistered McNemar on this study (see Study 5 / EXP-004 for the McNemar family)"
  },

  "preregistered_gates": {
    "G_theta_floor":          { "metric": "theta_OPBR", "operator": ">=", "threshold": 0.80 },
    "G_wilson_lower_floor":   { "metric": "Wilson 95% lower bound", "operator": ">=", "threshold": 0.75 }
  },

  "outputs": {
    "primary": "lab/exp/exp-002-results.json",
    "traces_corpus": "OPBR-Bench v0",
    "code": "https://github.com/raising-agents/agent-behavior-workbench",
    "replication_cmd": "abw run --experiment EXP-002"
  },

  "claim_boundary": "This is the field rate at which behavioral regressions pass output evaluation, in this corpus, under this perturbation set, with this model and runtime. It is not a claim about all output-passing failures in production agents, nor about generalization beyond the four OPBR domains. The baseline ranking under this regime is regime-specific — see EXP-004 for canonical OPBR where the ranking inverts."
}
