{
  "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"
  },
  "deviations": [
    "README says Bun 1.1+ but does not name an installer; installed Bun 1.4.4 with the official bun.sh install script (curl|sh), which put bun in <guest-path>; bun was not on PATH so saved argv uses that absolute path.",
    "Workspace is not a git repository; no git metadata was needed for the operation.",
    "Maps engine (go build, build:maps) skipped: not required for extract/CLI/MCP operations and needs Go 1.26+."
  ],
  "fault_owner": null,
  "main_blocker": null,
  "operation": "Run the LookaCrawler CLI extract command and the extract_web_content MCP tool against a real page",
  "operation_scope": "Pinned commit bc5ce110f8b52b00a474343105c40c0de0d86fb9 in a fresh Ubuntu VM; Bun 1.4.4 runtime; public internet access to example.com. Google Maps engine (maps/gtm/intel/daemon) not built and not exercised.",
  "outcome": "working",
  "plain_failure": null,
  "steps": [
    "curl -fsSL https://bun.sh/install | bash",
    "bun install (in <guest-path>)",
    "bun run cli.ts extract https://example.com --mode fast",
    "bun test (372 tests: 369 pass, 3 skip, 0 fail)",
    "bun run index.ts (stdio MCP) tools/call extract_web_content {url: https://example.com}"
  ],
  "stuck_step": null,
  "suggested_fix": "None for the tested operations. Note: bun is not on PATH after the curl installer; add it to PATH or use an absolute path."
}
