{
  "run_id": "TayHCode--shotseek-claude-haiku-5-5-1792729217191649626",
  "checker": {
    "claims": [
      {
        "claim": "search returns ranked results as text when asked",
        "command": "<guest-path> search 'a barista pouring latte art' --format text",
        "evidence": "photo3.jpg\n2. -0.0156 (-2.00) video 00:00:00.000-00:00:05.500 <guest-path>\n",
        "expected": "ranked text results naming indexed photo3.jpg",
        "input": "a barista pouring latte art",
        "kind": "claim",
        "outcome": "Real input produced the expected result: photo3.jpg",
        "returncode": 0,
        "source": "Default output is JSON; search and B-roll also support CSV and text.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "B-roll points are always searched",
        "command": "<guest-path> broll --media any --point 'coffee and pastry at the counter' --format text",
        "evidence": "photo3.jpg\n2. 0.0088 (-2.00) video 00:00:00.000-00:00:05.500 <guest-path>\n",
        "expected": "a ranked candidate list for the point",
        "input": "--point coffee and pastry at the counter",
        "kind": "claim",
        "outcome": "Real input produced the expected result: photo3.jpg",
        "returncode": 0,
        "source": "Points and explicit visual queries are always searched.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Entry points inspected: README 'Limitations and not in this version' lists no file watcher, background service, timer, or scheduled runs. src/shotseek has daemon worker threads (indexer.py, walker.py, probe.py) that run inside a single index command and exit with it; no cron, loop, or webhook trigger was found. The README's documented --time-budget and resumable index runs are one-shot commands, not product cycles.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Entry points inspected: README 'Limitations and not in this version' lists no file watcher, background service, timer, or scheduled runs. src/shotseek has daemon worker threads (indexer.py, walker.py, probe.py) that run inside a single index command and exit with it; no cron, loop, or webhook trigger was found. The README's documented --time-budget and resumable index runs are one-shot commands, not product cycles.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "<guest-path>",
        "search",
        "a barista pouring latte art",
        "--format",
        "text"
      ],
      "kind": "cli",
      "needs_browser": false,
      "needs_credentials": false,
      "returncode": 0,
      "scope": "product operation",
      "stderr": "",
      "stdout": "1. 0.0001 (0.50) photo <guest-path>\n2. -0.0156 (-2.00) video 00:00:00.000-00:00:05.500 <guest-path>",
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "documented offline unit test suite passes",
        "command": "<guest-path> -m unittest discover -s tests -t . -q",
        "deferred": false,
        "evidence": "candidate_stall_seconds=1.759 candidate_probes=1\nLoading image/text model ViT-B-32/laion2b_s34b_b79k from the local cache (offline).\nLoading image/text model ViT-B-32/laion2b_s34b_b79k from the local cache (offline).\nDirectory listing errors in media: 1\nDirectory listing errors in media: 1\nDirectory listing errors in extra: 1\n----------------------------------------------------------------------\nRan 210 tests in 201.673s\n\nOK (skipped=5)",
        "expected": "210 tests run, exit 0 (5 skipped)",
        "input": "python -m unittest discover -s tests -t . -q",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "CONTRIBUTING.md",
        "verdict": "yes"
      },
      {
        "claim": "documented lint check passes",
        "command": "<guest-path> -m ruff check .",
        "deferred": false,
        "evidence": "All checks passed!",
        "expected": "All checks passed!",
        "input": "python -m ruff check .",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "CONTRIBUTING.md",
        "verdict": "yes"
      },
      {
        "claim": "README B-roll point example runs",
        "command": "<guest-path> broll --media any --point 'coffee and pastry at the counter' --format text",
        "deferred": false,
        "evidence": "1. 0.0296 (0.50) photo <guest-path>\n2. 0.0088 (-2.00) video 00:00:00.000-00:00:05.500 <guest-path>",
        "expected": "ranked candidates for the point",
        "input": "shotseek broll --media any --point \"coffee and pastry at the counter\"",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "diagnosis": null
}
