{
  "run_id": "lucasmartins-ai--lookacrawler-claude-haiku-5-5-1793112925327966549",
  "checker": {
    "claims": [
      {
        "claim": "CLI extracts a page to Markdown",
        "command": "<guest-path> run cli.ts extract https://example.com --mode fast",
        "evidence": "documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.\n",
        "expected": "Markdown text of the page",
        "input": "https://example.com",
        "kind": "claim",
        "outcome": "Real input produced the expected result: documentation examples",
        "returncode": 0,
        "source": "bun run cli.ts extract https://news.ycombinator.com --mode fast",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "MCP server exposes extract_web_content tool",
        "command": "<guest-path> run index.ts tools/call {\"tool\": \"extract_web_content\", \"arguments\": {\"url\": \"https://example.com\", \"mode\": \"fast\"}}",
        "evidence": "documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.\"}]}",
        "expected": "Markdown text returned by the tool",
        "input": "{\"tool\": \"extract_web_content\", \"arguments\": {\"url\": \"https://example.com\", \"mode\": \"fast\"}}",
        "kind": "claim",
        "outcome": "Real input produced the expected result: documentation examples",
        "source": "**Tools:** `extract_web_content`, `crawl_website`, `map_website`",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "CLI scores buying intent of a text",
        "command": "<guest-path> run cli.ts intent 'Procuro um sof\u00e1 at\u00e9 R$ 2.500'",
        "evidence": "\"isLead\": true,\n  \"score\": 85,\n  \"matched\": [\n    \"procuro\"\n  ],\n  \"region\": null,\n  \"budget\": 2500\n}\n",
        "expected": "JSON with isLead true",
        "input": "Procuro um sof\u00e1 at\u00e9 R$ 2.500",
        "kind": "claim",
        "outcome": "Real input produced the expected result: \"isLead\": true",
        "returncode": 0,
        "source": "bun run cli.ts intent \"Procuro um sof\u00e1 at\u00e9 R$ 2.500\"",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Entry points inspected (cli.ts, index.ts, package.json scripts, README). No cron, scheduler, --once/--now, or webhook loop is documented. The only long-running items are the MCP stdio/SSE server (serve) and the Maps daemon (daemon start), which are request servers rather than scheduled cycles. setInterval in browser-manager.ts is an idle browser sweeper, not a product cycle.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Entry points inspected (cli.ts, index.ts, package.json scripts, README). No cron, scheduler, --once/--now, or webhook loop is documented. The only long-running items are the MCP stdio/SSE server (serve) and the Maps daemon (daemon start), which are request servers rather than scheduled cycles. setInterval in browser-manager.ts is an idle browser sweeper, not a product cycle.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "<guest-path>",
        "run",
        "index.ts"
      ],
      "kind": "mcp",
      "scope": "product operation",
      "serverInfo": {
        "name": "lookacrawler",
        "version": "1.1.2"
      },
      "tool_result": {
        "content": [
          {
            "text": "> [!NOTE] This content was retrieved from local cache.\n\nThis domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.",
            "type": "text"
          }
        ]
      },
      "tool_result_checked": true,
      "tool_schema_bytes": 20651,
      "tools": [
        "extract_web_content",
        "batch_extract_web_content",
        "extract_structured_data",
        "map_website",
        "crawl_website",
        "extract_contacts",
        "search_places",
        "discover_local_leads",
        "deep_enrich_lead",
        "lint_anti_slop",
        "lookup_social_profile",
        "search_social_intent",
        "audit_company_website",
        "analyze_competitors",
        "generate_growth_plan",
        "gtm_pipeline_run"
      ],
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "Extract a page to Markdown from the CLI",
        "command": "<guest-path> run cli.ts extract https://example.com --mode fast",
        "deferred": false,
        "evidence": "This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.",
        "expected": "Markdown text of the page",
        "input": "https://example.com --mode fast",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md: Quick Start & CLI Usage",
        "verdict": "yes"
      },
      {
        "claim": "Discover sitemaps for a domain",
        "command": "<guest-path> run cli.ts map https://example.com --max-urls 5",
        "deferred": false,
        "evidence": "{\n  \"host\": \"example.com\",\n  \"sitemapsFound\": [\n    \"https://example.com/sitemap.xml\"\n  ],\n  \"totalDiscovered\": 0,\n  \"urls\": []\n}",
        "expected": "JSON listing the host and sitemaps found",
        "input": "https://example.com --max-urls 5",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md: Quick Start & CLI Usage",
        "verdict": "yes"
      },
      {
        "claim": "Lint copy for AI slop",
        "command": "<guest-path> run cli.ts antislop 'No cen\u00e1rio atual, uma solu\u00e7\u00e3o revolucion\u00e1ria'",
        "deferred": false,
        "evidence": "ed_word\",\n      \"matched\": \"No cen\u00e1rio atual\",\n      \"rule\": \"Abertura clich\u00ea de IA (throat-clearing)\",\n      \"suggestion\": \"V\u00e1 direto ao ponto ou ao fato concreto\",\n      \"index\": 0\n    },\n    {\n      \"category\": \"banned_word\",\n      \"matched\": \"revolucion\u00e1ria\",\n      \"rule\": \"Hip\u00e9rbole vazia sem dados comprobat\u00f3rios\",\n      \"suggestion\": \"Descreva o resultado espec\u00edfico em n\u00fameros ou tempo economizado\",\n      \"index\": 30\n    }\n  ],\n  \"metrics\": {\n    \"wordCount\": 6,\n    \"concreteNumbersCount\": 0,\n    \"sentencesCount\": 1,\n    \"averageSentenceLength\": 6,\n    \"hasConcreteGrounding\": false\n  }\n}",
        "expected": "JSON with isSlop true",
        "input": "No cen\u00e1rio atual, uma solu\u00e7\u00e3o revolucion\u00e1ria",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md: Quick Start & CLI Usage",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "diagnosis": null
}
