{
  "run_id": "TayHCode--search-first-claude-haiku-5-5-1792608937366265731",
  "checker": {
    "claims": [
      {
        "claim": "inspect_repo returns maintenance and reuse signals for a public repository",
        "command": "<guest-path> --python 3.12 --from . search-first tools/call {\"tool\": \"inspect_repo\", \"arguments\": {\"repo\": \"maverick-360/vaultab\"}}",
        "evidence": "maverick-360/vaultab\\\",\\n  \\\"url\\\": \\\"https://github.com/maverick-360/vaultab\\\",\\n  \\\"description\\\": \\\"A Chrome extension that saves tabs into collections & folders, auto-closes idle tabs, locks sites from closing, and tracks time spent per website. Everything stays local.\\\",\\n  \\\"stars\\\": 5,\\n  \\\"forks\\\": 0,\\n  \\\"last_push\\\": \\\"2026-07-05T14:33:01Z\\\",\\n  \\\"archived\\\": false,\\n  \\\"license\\\": \\\"MIT\\\",\\n  \\\"license_name\\\": \\\"MIT License\\\",\\n  \\\"language\\\": \\\"JavaScript\\\",\\n  \\\"topics\\\": [\\n    \\\"auto-close\\\",\\n    \\\"browser-extension\\\",\\n    \\\"chrome-extension\\\",\\n    \\\"javascript\\\",\\n    \\\"mani",
        "expected": "README inspection for the named repository",
        "input": "{\"tool\": \"inspect_repo\", \"arguments\": {\"repo\": \"maverick-360/vaultab\"}}",
        "kind": "claim",
        "outcome": "Real input produced the expected result: maverick-360/vaultab",
        "source": "Accepts `owner/repo` or `https://github.com/owner/repo`.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "compare_candidates compares repositories side by side for an idea",
        "command": "<guest-path> --python 3.12 --from . search-first tools/call {\"tool\": \"compare_candidates\", \"arguments\": {\"idea\": \"a Python library for rate limiting outgoing HTTP requests\", \"repos\": [\"vutran1710/PyrateLimiter\", \"bboe/extended_http_server\"], \"sort_by\": \"overall\"}}",
        "evidence": "vutran1710/PyrateLimiter\\\",\\n      \\\"url\\\": \\\"https://github.com/vutran1710/PyrateLimiter\\\",\\n      \\\"description\\\": \\\"\u2694\ufe0fPython Rate-Limiter using Leaky-Bucket Algorithm Family\\\",\\n      \\\"stars\\\": 529,\\n      \\\"forks\\\": 53,\\n      \\\"last_push\\\": \\\"2026-10-20T13:45:29Z\\\",\\n      \\\"archived\\\": false,\\n      \\\"license\\\": \\\"MIT\\\",\\n      \\\"license_name\\\": \\\"MIT License\\\",\\n      \\\"language\\\": \\\"Python\\\",\\n      \\\"topics\\\": [\\n        \\\"leaky-bucket\\\",\\n        \\\"python\\\",\\n        \\\"rate-limit\\\",\\n        \\\"rate-limiter\\\",\\n        \\\"rate-limiting\\\",\\n        \\\"request-rate-limit\\\"\\n      ],\\n   ",
        "expected": "a comparison row naming the repository",
        "input": "{\"tool\": \"compare_candidates\", \"arguments\": {\"idea\": \"a Python library for rate limiting outgoing HTTP requests\", \"repos\": [\"vutran1710/PyrateLimiter\", \"bboe/extended_http_server\"], \"sort_by\": \"overall\"}}",
        "kind": "claim",
        "outcome": "Real input produced the expected result: vutran1710/PyrateLimiter",
        "source": "Returns named `columns` and side-by-side `rows`, one per unique repo (1\u20136 inputs),",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Entry points inspected: src/search_first/server.py (argparse CLI for an MCP server over stdio or streamable-http, no scheduler, loop or --once/--now flag), and README grep for cron/schedule/webhook/loop found no product scheduler; the server only answers MCP tool calls. ranking.py 'schedule/cron' hits are keyword matching of discovered repositories, not product behavior.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Entry points inspected: src/search_first/server.py (argparse CLI for an MCP server over stdio or streamable-http, no scheduler, loop or --once/--now flag), and README grep for cron/schedule/webhook/loop found no product scheduler; the server only answers MCP tool calls. ranking.py 'schedule/cron' hits are keyword matching of discovered repositories, not product behavior.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "<guest-path>",
        "--python",
        "3.12",
        "--from",
        ".",
        "search-first"
      ],
      "kind": "mcp",
      "scope": "product operation",
      "serverInfo": {
        "name": "search-first",
        "version": "0.1.0"
      },
      "tool_result": {
        "content": [
          {
            "text": "{\n  \"verdict\": {\n    \"closest_match\": {\n      \"name\": \"maverick-360/vaultab\",\n      \"url\": \"https://github.com/maverick-360/vaultab\"\n    },\n    \"plausible_candidates\": 0,\n    \"adjacent_candidates\": 53,\n    \"recommendation\": \"inconclusive\",\n    \"reasoning\": \"Core overlap exists, but the reuse floor (25 stars, push within 365 days) or lexical plausibility threshold is unverified. Inspect their README and required behavior, then broaden queries before choosing to build. A low score does not establish that no reusable base exists.\",\n    \"provisional\": true,\n    \"search_complete\": true\n  },\n  \"warnings\": [],\n  \"candidates\": [\n    {\n      \"name\": \"maverick-360/vaultab\",\n      \"url\": \"https://github.com/maverick-360/vaultab\",\n      \"stars\": 5,\n      \"last_push\": \"2026-07-05T14:33:01Z\",\n      \"license\": \"MIT\",\n      \"relevance_score\": 0.858,\n      \"idea_term_coverage\": 1.0,\n      \"missing_key_terms\": [],\n      \"missing_constraints\": [],\n      \"why_it_matched\": \"Strong core match; Core terms: 5/5 (browser, close, extension, idle, tab); 5 stars, push 108 days ago; returned by 2 query variant(s), best GitHub rank 1. Cautions: reuse floor unverified: needs at least 25 stars and a push within 365 days.\"\n    },\n    {\n      \"name\": \"vladbulyukhin/tab-reaper\",\n      \"url\": \"https://github.com/vladbulyukhin/tab-reaper\",\n      \"stars\": 2,\n      \"last_push\": \"2026-09-06T19:31:45Z\",\n      \"license\": \"MPL-2.0\",\n      \"relevance_score\": 0.783,\n      \"idea_term_coverage\": 1.0,\n      \"missing_key_terms\": [],\n      \"missing_constraints\": [],\n      \"why_it_matched\": \"Strong core match; Core terms: 5/5 (browser, close, extension, idle, tab); 2 stars, push 44 days ago; returned by 1 query variant(s), best GitHub rank 7. Cautions: reuse floor unverified: needs at least 25 stars and a push within 365 days.\"\n    },\n    {\n      \"name\": \"danielmarquesads/tabflow\",\n      \"url\": \"https://github.com/danielmarquesads/tabflow\",\n      \"stars\": 4,\n      \"last_push\": \"2026-07-18T06:46:53Z\",\n      \"license\": \"MIT\",\n      \"relevance_score\": 0.777,\n      \"idea_term_coverage\": 1.0,\n      \"missing_key_terms\": [],\n      \"missing_constraints\": [],\n      \"why_it_matched\": \"Strong core match; Core terms: 5/5 (browser, close, extension, idle, tab); 4 stars, push 95 days ago; returned by 1 query variant(s), best GitHub rank 27. Cautions: reuse floor unverified: needs at least 25 stars and a push within 365 days.\"\n    },\n    {\n      \"name\": \"erag/tab-cleaner\",\n      \"url\": \"https://github.com/erag/tab-cleaner\",\n      \"stars\": 1,\n      \"last_push\": \"2026-09-04T03:16:05Z\",\n      \"license\": \"MIT\",\n      \"relevance_score\": 0.769,\n      \"idea_term_coverage\": 1.0,\n      \"missing_key_terms\": [],\n      \"missing_constraints\": [],\n      \"why_it_matched\": \"Strong core match; Core terms: 5/5 (browser, close, extension, idle, tab); 1 stars, push 47 days ago; returned by 1 query variant(s), best GitHub rank 11. Cautions: reuse floor unverified: needs at least 25 stars and a push within 365 days.\"\n    },\n    {\n      \"name\": \"GuyDev1/tab-minimalist\",\n      \"url\": \"https://github.com/GuyDev1/tab-minimalist\",\n      \"stars\": 1,\n      \"last_push\": \"2026-06-06T19:19:47Z\",\n      \"license\": \"MIT\",\n      \"relevance_score\": 0.767,\n      \"idea_term_coverage\": 1.0,\n      \"missing_key_terms\": [],\n      \"missing_constraints\": [],\n      \"why_it_matched\": \"Strong core match; Core terms: 5/5 (browser, close, extension, idle, tab); 1 stars, push 136 days ago; returned by 1 query variant(s), best GitHub rank 14. Cautions: reuse floor unverified: needs at least 25 stars and a push within 365 days.\"\n    },\n    {\n      \"name\": \"RealUnfazed/Chrome-TabTidy\",\n      \"url\": \"https://github.com/RealUnfazed/Chrome-TabTidy\",\n      \"stars\": 0,\n      \"last_push\": \"2026-09-28T10:41:29Z\",\n      \"license\": \"MIT\",\n      \"relevance_score\": 0.762,\n      \"idea_term_coverage\": 1.0,\n      \"missing_key_terms\": [],\n      \"missing_constraints\": [],\n      \"why_it_matched\": \"Strong core match; Core terms: 5/5 (browser, close, extension, idle, tab); 0 stars, push 23 days ago; returned by 1 query variant(s), best GitHub rank 8. Cautions: reuse floor unverified: needs at least 25 stars and a push within 365 days.\"\n    },\n    {\n      \"name\": \"mj407/tab-reaper\",\n      \"url\": \"https://github.com/mj407/tab-reaper\",\n      \"stars\": 0,\n      \"last_push\": \"2026-05-30T21:07:01Z\",\n      \"license\": \"MIT\",\n      \"relevance_score\": 0.759,\n      \"idea_term_coverage\": 1.0,\n      \"missing_key_terms\": [],\n      \"missing_constraints\": [],\n      \"why_it_matched\": \"Strong core match; Core terms: 5/5 (browser, close, extension, idle, tab); 0 stars, push 143 days ago; returned by 1 query variant(s), best GitHub rank 10. Cautions: reuse floor unverified: needs at least 25 stars and a push within 365 days.\"\n    },\n    {\n      \"name\": \"WahaajTauqir/tab-lean\",\n      \"url\": \"https://github.com/WahaajTauqir/tab-lean\",\n      \"stars\": 0,\n      \"last_push\": \"2026-08-24T08:20:15Z\",\n      \"license\": \"MIT\",\n      \"relevance_score\": 0.753,\n      \"idea_term_coverage\": 1.0,\n      \"missing_key_terms\": [],\n      \"missing_constraints\": [],\n      \"why_it_matched\": \"Strong core match; Core terms: 5/5 (browser, close, extension, idle, tab); 0 stars, push 58 days ago; returned by 1 query variant(s), best GitHub rank 16. Cautions: reuse floor unverified: needs at least 25 stars and a push within 365 days.\"\n    }\n  ],\n  \"unique_candidates_evaluated\": 55,\n  \"errors\": [],\n  \"message\": null,\n  \"retry_after_seconds\": null,\n  \"coverage\": {\n    \"bounded\": true,\n    \"truncated\": true,\n    \"repositories_per_query\": 30,\n    \"queries_completed\": 2,\n    \"queries_failed\": 0,\n    \"queries_skipped\": 3,\n    \"query_budget\": 2,\n    \"bounded_plan_complete\": true,\n    \"results_skipped\": 47,\n    \"unretrieved_results\": null,\n    \"note\": \"Counts refer to deduplicated retrieved projects, not all of GitHub. Metadata-only lexical ranking; no candidate has been run or tested.\"\n  },\n  \"notes\": [\n    \"Unauthenticated mode: at most 2 search variants per call; set GITHUB_TOKEN for complete searches. Shared-IP quota still applies.\"\n  ]\n}",
            "type": "text"
          }
        ],
        "isError": false,
        "structuredContent": {
          "candidates": [
            {
              "idea_term_coverage": 1.0,
              "last_push": "2026-07-05T14:33:01Z",
              "license": "MIT",
              "missing_constraints": [],
              "missing_key_terms": [],
              "name": "maverick-360/vaultab",
              "relevance_score": 0.858,
              "stars": 5,
              "url": "https://github.com/maverick-360/vaultab",
              "why_it_matched": "Strong core match; Core terms: 5/5 (browser, close, extension, idle, tab); 5 stars, push 108 days ago; returned by 2 query variant(s), best GitHub rank 1. Cautions: reuse floor unverified: needs at least 25 stars and a push within 365 days."
            },
            {
              "idea_term_coverage": 1.0,
              "last_push": "2026-09-06T19:31:45Z",
              "license": "MPL-2.0",
              "missing_constraints": [],
              "missing_key_terms": [],
              "name": "vladbulyukhin/tab-reaper",
              "relevance_score": 0.783,
              "stars": 2,
              "url": "https://github.com/vladbulyukhin/tab-reaper",
              "why_it_matched": "Strong core match; Core terms: 5/5 (browser, close, extension, idle, tab); 2 stars, push 44 days ago; returned by 1 query variant(s), best GitHub rank 7. Cautions: reuse floor unverified: needs at least 25 stars and a push within 365 days."
            },
            {
              "idea_term_coverage": 1.0,
              "last_push": "2026-07-18T06:46:53Z",
              "license": "MIT",
              "missing_constraints": [],
              "missing_key_terms": [],
              "name": "danielmarquesads/tabflow",
              "relevance_score": 0.777,
              "stars": 4,
              "url": "https://github.com/danielmarquesads/tabflow",
              "why_it_matched": "Strong core match; Core terms: 5/5 (browser, close, extension, idle, tab); 4 stars, push 95 days ago; returned by 1 query variant(s), best GitHub rank 27. Cautions: reuse floor unverified: needs at least 25 stars and a push within 365 days."
            },
            {
              "idea_term_coverage": 1.0,
              "last_push": "2026-09-04T03:16:05Z",
              "license": "MIT",
              "missing_constraints": [],
              "missing_key_terms": [],
              "name": "erag/tab-cleaner",
              "relevance_score": 0.769,
              "stars": 1,
              "url": "https://github.com/erag/tab-cleaner",
              "why_it_matched": "Strong core match; Core terms: 5/5 (browser, close, extension, idle, tab); 1 stars, push 47 days ago; returned by 1 query variant(s), best GitHub rank 11. Cautions: reuse floor unverified: needs at least 25 stars and a push within 365 days."
            },
            {
              "idea_term_coverage": 1.0,
              "last_push": "2026-06-06T19:19:47Z",
              "license": "MIT",
              "missing_constraints": [],
              "missing_key_terms": [],
              "name": "GuyDev1/tab-minimalist",
              "relevance_score": 0.767,
              "stars": 1,
              "url": "https://github.com/GuyDev1/tab-minimalist",
              "why_it_matched": "Strong core match; Core terms: 5/5 (browser, close, extension, idle, tab); 1 stars, push 136 days ago; returned by 1 query variant(s), best GitHub rank 14. Cautions: reuse floor unverified: needs at least 25 stars and a push within 365 days."
            },
            {
              "idea_term_coverage": 1.0,
              "last_push": "2026-09-28T10:41:29Z",
              "license": "MIT",
              "missing_constraints": [],
              "missing_key_terms": [],
              "name": "RealUnfazed/Chrome-TabTidy",
              "relevance_score": 0.762,
              "stars": 0,
              "url": "https://github.com/RealUnfazed/Chrome-TabTidy",
              "why_it_matched": "Strong core match; Core terms: 5/5 (browser, close, extension, idle, tab); 0 stars, push 23 days ago; returned by 1 query variant(s), best GitHub rank 8. Cautions: reuse floor unverified: needs at least 25 stars and a push within 365 days."
            },
            {
              "idea_term_coverage": 1.0,
              "last_push": "2026-05-30T21:07:01Z",
              "license": "MIT",
              "missing_constraints": [],
              "missing_key_terms": [],
              "name": "mj407/tab-reaper",
              "relevance_score": 0.759,
              "stars": 0,
              "url": "https://github.com/mj407/tab-reaper",
              "why_it_matched": "Strong core match; Core terms: 5/5 (browser, close, extension, idle, tab); 0 stars, push 143 days ago; returned by 1 query variant(s), best GitHub rank 10. Cautions: reuse floor unverified: needs at least 25 stars and a push within 365 days."
            },
            {
              "idea_term_coverage": 1.0,
              "last_push": "2026-08-24T08:20:15Z",
              "license": "MIT",
              "missing_constraints": [],
              "missing_key_terms": [],
              "name": "WahaajTauqir/tab-lean",
              "relevance_score": 0.753,
              "stars": 0,
              "url": "https://github.com/WahaajTauqir/tab-lean",
              "why_it_matched": "Strong core match; Core terms: 5/5 (browser, close, extension, idle, tab); 0 stars, push 58 days ago; returned by 1 query variant(s), best GitHub rank 16. Cautions: reuse floor unverified: needs at least 25 stars and a push within 365 days."
            }
          ],
          "coverage": {
            "bounded": true,
            "bounded_plan_complete": true,
            "note": "Counts refer to deduplicated retrieved projects, not all of GitHub. Metadata-only lexical ranking; no candidate has been run or tested.",
            "queries_completed": 2,
            "queries_failed": 0,
            "queries_skipped": 3,
            "query_budget": 2,
            "repositories_per_query": 30,
            "results_skipped": 47,
            "truncated": true,
            "unretrieved_results": null
          },
          "errors": [],
          "message": null,
          "notes": [
            "Unauthenticated mode: at most 2 search variants per call; set GITHUB_TOKEN for complete searches. Shared-IP quota still applies."
          ],
          "retry_after_seconds": null,
          "unique_candidates_evaluated": 55,
          "verdict": {
            "adjacent_candidates": 53,
            "closest_match": {
              "name": "maverick-360/vaultab",
              "url": "https://github.com/maverick-360/vaultab"
            },
            "plausible_candidates": 0,
            "provisional": true,
            "reasoning": "Core overlap exists, but the reuse floor (25 stars, push within 365 days) or lexical plausibility threshold is unverified. Inspect their README and required behavior, then broaden queries before choosing to build. A low score does not establish that no reusable base exists.",
            "recommendation": "inconclusive",
            "search_complete": true
          },
          "warnings": []
        }
      },
      "tool_result_checked": true,
      "tool_schema_bytes": 4129,
      "tools": [
        "search_existing",
        "inspect_repo",
        "compare_candidates"
      ],
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "Documented development test suite passes",
        "command": "<guest-path> run --locked pytest -q",
        "deferred": false,
        "evidence": "........................................................................ [ 35%]\n........................................................................ [ 71%]\n.........................................................                [100%]\n201 passed in 5.92s",
        "expected": "all tests pass",
        "input": "uv run --locked pytest -q",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "Documented lint check passes",
        "command": "<guest-path> run --locked ruff check .",
        "deferred": false,
        "evidence": "All checks passed!",
        "expected": "ruff reports no problems",
        "input": "uv run --locked ruff check .",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "Documented format check passes",
        "command": "<guest-path> run --locked ruff format --check .",
        "deferred": false,
        "evidence": "29 files already formatted",
        "expected": "all files already formatted",
        "input": "uv run --locked ruff format --check .",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "Documented type check passes",
        "command": "<guest-path> run --locked mypy",
        "deferred": false,
        "evidence": "Success: no issues found in 7 source files",
        "expected": "no type issues",
        "input": "uv run --locked mypy",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "Live GitHub smoke run is explicit and not part of CI",
        "command": "",
        "deferred": true,
        "evidence": "deferred: scripts/smoke.py makes live public GitHub searches (quota-limited, unauthenticated 2 variants/min budget) and the script says it is never part of CI; not run to avoid consuming shared rate limit. Fixture tests above cover the code paths offline.",
        "expected": "documented command completes successfully",
        "input": "",
        "kind": "example",
        "outcome": "deferred: scripts/smoke.py makes live public GitHub searches (quota-limited, unauthenticated 2 variants/min budget) and the script says it is never part of CI; not run to avoid consuming shared rate limit. Fixture tests above cover the code paths offline.",
        "source": "docs/SMOKE.md",
        "verdict": "deferred"
      }
    ],
    "status": "PASS"
  },
  "diagnosis": null
}
