{
  "run_id": "awlevin--typesafe-computer-use-claude-haiku-5-5-1792806725799643543",
  "checker": {
    "claims": [
      {
        "claim": "Contributor checks (ruff and pytest) must pass",
        "command": "uv run ruff check .",
        "evidence": "All checks passed!\n",
        "expected": "ruff check passes",
        "input": "repository checkout",
        "kind": "claim",
        "outcome": "Real input produced the expected result: All checks passed!",
        "returncode": 0,
        "source": "`uv run ruff check . && uv run ruff format --check .` and `uv run pytest -q` must pass.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "The dry run must be started with a dry run before acting on the real mouse and keyboard",
        "command": "",
        "evidence": "The clicker drives macOS only (macos.py, Screen Recording and Accessibility permissions). Its dry run also needs TYPESAFE_API_KEY, which is not available in this Linux guest; the run stopped with 'TYPESAFE_API_KEY is not set'.",
        "expected": "",
        "input": "",
        "kind": "claim",
        "outcome": "The clicker drives macOS only (macos.py, Screen Recording and Accessibility permissions). Its dry run also needs TYPESAFE_API_KEY, which is not available in this Linux guest; the run stopped with 'TYPESAFE_API_KEY is not set'.",
        "source": "It drives your real mouse and keyboard, so start with a dry run.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "blocked"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Entry points inspected (typesafe_computer_use/cli.py, runner.py, browser/bench.py, pyproject.toml scripts). clicker runs one goal per invocation; the only while-True loop (runner.py:182) is the step loop inside a single run, not a scheduler. No cron, --once/--now, or webhook entry point. Trigger is a manual invocation, which cannot run here without TYPESAFE_API_KEY and macOS.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Entry points inspected (typesafe_computer_use/cli.py, runner.py, browser/bench.py, pyproject.toml scripts). clicker runs one goal per invocation; the only while-True loop (runner.py:182) is the step loop inside a single run, not a scheduler. No cron, --once/--now, or webhook entry point. Trigger is a manual invocation, which cannot run here without TYPESAFE_API_KEY and macOS.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "checks": [
        {
          "check": "credentials_error",
          "details": {
            "argv": [
              "uv",
              "run",
              "clicker",
              "open the Playground"
            ],
            "kind": "cli",
            "needs_browser": false,
            "needs_credentials": true,
            "returncode": 1,
            "scope": "partial: missing credentials",
            "stderr": "TYPESAFE_API_KEY is not set (export it or put it in .env)",
            "stdout": "",
            "working": false
          },
          "optional": false,
          "status": "PASS"
        }
      ],
      "scope": "partial checks",
      "working": false
    },
    "evidence_strength": "partly_checked",
    "example_checks": [
      {
        "claim": "Contributor test suite passes",
        "command": "uv run pytest -q",
        "deferred": false,
        "evidence": "s............s........................................................ [ 49%]\n.........................................................s.............. [ 58%]\n........................................................................ [ 68%]\n........................................................................ [ 78%]\n........................................................................ [ 88%]\n..................x..................................................... [ 98%]\n.............                                                            [100%]\n729 passed, 3 skipped, 1 xfailed in 47.31s",
        "expected": "all offline tests pass",
        "input": "repository checkout",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md Contributing: uv run pytest -q must pass",
        "verdict": "yes"
      },
      {
        "claim": "Contributor lint check passes",
        "command": "uv run ruff check .",
        "deferred": false,
        "evidence": "All checks passed!",
        "expected": "All checks passed!",
        "input": "repository checkout",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md Contributing: uv run ruff check . must pass",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "diagnosis": null
}
