{
  "artifact": "s08_verifier_contract",
  "sprint": "S08-FIXFIRST",
  "claim": "The stranger's verifier signals its verdict in its exit code, and the file list the browser page fetches imports on its own.",
  "method": "Five inputs derived from committed certificates are run through verifier/verify_core.py as a subprocess from the repo root with nothing on PYTHONPATH; the browser file list is parsed out of verifier/index.html and imported in an empty tree.",
  "contract": {
    "valid_own": {
      "verdict": "VERIFIED",
      "exit_code": 0,
      "why": "every rule that applied passed, and at least one applied"
    },
    "seal_moved": {
      "verdict": "FAILED",
      "exit_code": 2,
      "why": "the threshold moved after sealing; the seal does not recompute"
    },
    "foreign_shape": {
      "verdict": "NO_RULE_APPLIES",
      "exit_code": 3,
      "why": "another lane's certificate shape; this verifier has no rule that reads it and must not report success"
    },
    "not_json": {
      "verdict": "UNREADABLE",
      "exit_code": 4,
      "why": "not a JSON document"
    },
    "reps_tampered": {
      "verdict": "NO_RULE_APPLIES",
      "exit_code": 3,
      "why": "DECLARED SCOPE, not a pass: no rule reads config.reps, so tampering it is invisible here"
    }
  },
  "cases": {
    "valid_own": {
      "exit_code": 0,
      "verdict": "VERIFIED",
      "n_fail": 0,
      "crashed": false,
      "tail": "}",
      "expected_verdict": "VERIFIED",
      "expected_exit_code": 0,
      "meets_contract": true,
      "why": "every rule that applied passed, and at least one applied"
    },
    "seal_moved": {
      "exit_code": 2,
      "verdict": "FAILED",
      "n_fail": 1,
      "crashed": false,
      "tail": "}",
      "expected_verdict": "FAILED",
      "expected_exit_code": 2,
      "meets_contract": true,
      "why": "the threshold moved after sealing; the seal does not recompute"
    },
    "foreign_shape": {
      "exit_code": 3,
      "verdict": "NO_RULE_APPLIES",
      "n_fail": 0,
      "crashed": false,
      "tail": "}",
      "expected_verdict": "NO_RULE_APPLIES",
      "expected_exit_code": 3,
      "meets_contract": true,
      "why": "another lane's certificate shape; this verifier has no rule that reads it and must not report success"
    },
    "not_json": {
      "exit_code": 4,
      "verdict": "UNREADABLE",
      "n_fail": 0,
      "crashed": false,
      "tail": "}",
      "expected_verdict": "UNREADABLE",
      "expected_exit_code": 4,
      "meets_contract": true,
      "why": "not a JSON document"
    },
    "reps_tampered": {
      "exit_code": 3,
      "verdict": "NO_RULE_APPLIES",
      "n_fail": 0,
      "crashed": false,
      "tail": "}",
      "expected_verdict": "NO_RULE_APPLIES",
      "expected_exit_code": 3,
      "meets_contract": true,
      "why": "DECLARED SCOPE, not a pass: no rule reads config.reps, so tampering it is invisible here"
    }
  },
  "browser_load_simulation": {
    "files_the_page_fetches": [
      "bundle/stats.py",
      "bundle/seal.py",
      "bundle/economics.py",
      "bundle/vendor/__init__.py",
      "bundle/vendor/eprocess.py",
      "verify_core.py"
    ],
    "files_missing_from_repo": [],
    "imports_with_only_those_files": true,
    "error": ""
  },
  "verdict": "CONTRACT MET: 5/5 cases carry the verdict in the exit code (4 distinct exit codes over 5 verdict classes); the browser file list (6 files) imports standalone.",
  "wall_s": 0.4,
  "cost_usd": 0.0,
  "does_not_prove": [
    "That the four rules are the right rules: the rule set is a seal, MDE rows, a replicate floor and a cost identity, and nothing else. config.reps is tampered in the battery and is invisible by design.",
    "That pyodide runs it: this simulates the page's file list under CPython. A browser run is the stranger's own step.",
    "Anything about another lane's verifier: the foreign case is a key shape, not another lane's certificate."
  ],
  "generated_utc": "2026-09-04T19:58:29.596168+00:00",
  "git_rev": "fd54c78",
  "git_dirty": false,
  "run_id": "ef92dae2a19d427f",
  "host_kind": "Darwin-arm64",
  "provenance_schema": "gpu-cert-provenance/1"
}