{
  "version": "devtools-map-checks-v1",
  "runAt": "2026-10-25T19:37:40.612Z",
  "scope": "Existing AI developer-tools demo map with supplied structured events and accepted quotes. No article fetching, quote rechecking, live extraction, source-tier gate or action drafting was run. Not an accuracy claim for the complete live pipeline.",
  "method": "Agent-authored diagnostic cases selected from existing public-source seed events. Not an unseen or independent holdout. Expected relevance is a review judgment, not proven financial exposure.",
  "labels": "AI-authored; not independently human-reviewed. Cases were selected with knowledge of the map and rules. Do not treat this as a holdout benchmark.",
  "counts": {
    "cases": 17,
    "relevantFound": 11,
    "relevantExpected": 14,
    "missed": 3,
    "falseAlerts": 0,
    "correctNegatives": 3
  },
  "inputs": {
    "data/validation/devtools-cases.json": "9c534238fcae6216e3b7e7aa7564dab60caf6b6c9a89acd4213b564141268f1b",
    "data/seed-devtools/entities.json": "58f516c77c64d2318f1ba81f263f8b776787f5c79a1ec2775240c66e2ec39eb2",
    "data/seed-devtools/edges.json": "97965616e3cbf579b14f2eab3bd08013f5a642c9e83fc57eba05ee56206f7d67",
    "data/seed-devtools/events.json": "d6a6c868a2d5d9852858ff7f5b498e7e89fe5a030e5cdf41ad608f080b29a89c",
    "data/seed-devtools/portfolios.json": "53f9e147ab1b26c76b266ab72d4a03f454745e0b04ce9ff61c03dd6270a788b7"
  },
  "rows": [
    {
      "id": "partner-review-launch",
      "eventId": "ev:2026-10-15-anthropic-code-review-ga",
      "companyId": "co:coderabbit",
      "expected": true,
      "reason": "A documented partner offers a competing reviewer; merits checking channel conflict.",
      "company": "CodeRabbit",
      "eventDate": "2026-10-15",
      "eventType": "platform_launch",
      "sourceUrl": "https://claude.com/resources/articles/code-review-is-now-generally-available",
      "sourceQuote": "Eligible Claude Enterprise organizations can claim at least $10,000 in Code Review credits by January 15, 2027.",
      "found": true,
      "outcome": "matched",
      "explanation": "Anthropic made Code Review GA with $10K+ credits for Enterprise (2026-10-15), and Anthropic is a partner of CodeRabbit, so a partner of CodeRabbit may now compete with it.",
      "path": [
        {
          "id": "ed:partner_of:coderabbit:anthropic:0889d0db",
          "type": "partner_of",
          "quote": "Anthropic customers can apply their existing Anthropic spend commitment toward CodeRabbit, simplifying procurement and consolidating AI spend.",
          "sourceUrl": "https://www.coderabbit.ai/newsroom/coderabbit-joins-claude-marketplace",
          "date": "2026-05-27"
        }
      ]
    },
    {
      "id": "rival-hosting-launch",
      "eventId": "ev:2026-09-28-cloudflare-vinext-1",
      "companyId": "co:vercel",
      "expected": true,
      "reason": "A rival launches Next.js portability; merits checking migration evidence.",
      "company": "Vercel",
      "eventDate": "2026-09-28",
      "eventType": "platform_launch",
      "sourceUrl": "https://blog.cloudflare.com/vinext-nextjs-on-vite/",
      "sourceQuote": "Vinext lets you take any Next.js application, whether it was built for the Pages or App Router, and make it portable to be deployed to",
      "found": true,
      "outcome": "matched",
      "explanation": "Cloudflare released Vinext 1.0 to deploy Next.js apps anywhere (2026-09-28), and Cloudflare competes with Vercel, so a competitor of Vercel has launched a product; overlap and customer impact need review.",
      "path": [
        {
          "id": "ed:competitor_of:vercel:cloudflare:dbc1e0a9",
          "type": "competitor_of",
          "quote": "Next.js is a full-stack React framework created and maintained by Vercel, and it runs on both Vercel and Cloudflare with your application code largely unchanged.",
          "sourceUrl": "https://vercel.com/kb/guide/next-js-on-vercel-vs-cloudflare",
          "date": "2026-06-11"
        }
      ]
    },
    {
      "id": "rival-funding",
      "eventId": "ev:2026-09-15-factory-funding",
      "companyId": "co:cognition",
      "expected": true,
      "reason": "Factory's funding merits a competitive review; the map may lack evidence dated before this event.",
      "company": "Cognition",
      "eventDate": "2026-09-15",
      "eventType": "funding",
      "sourceUrl": "https://factory.com/news/5-billion-valuation",
      "sourceQuote": "Factory has raised $200M at a $5B valuation to scale self-improving software development in the enterprise.",
      "found": false,
      "outcome": "missed",
      "explanation": "No competitor link between Cognition and Factory was valid on 2026-09-15.",
      "path": []
    },
    {
      "id": "rival-network-launch",
      "eventId": "ev:2026-04-14-cloudflare-mesh",
      "companyId": "co:tailscale",
      "expected": true,
      "reason": "Cloudflare Mesh merits review for Tailscale; undated rival evidence cannot support a retrospective alert.",
      "company": "Tailscale",
      "eventDate": "2026-04-14",
      "eventType": "platform_launch",
      "sourceUrl": "https://blog.cloudflare.com/mesh/",
      "sourceQuote": "Today, we're introducing Cloudflare Mesh to connect your private networks together and provide secure access for your agents.",
      "found": false,
      "outcome": "missed",
      "explanation": "No customer, competitor or partner link between Tailscale and Cloudflare was valid on 2026-04-14.",
      "path": []
    },
    {
      "id": "customer-layoffs",
      "eventId": "ev:2026-09-16-adidas-tech-layoffs",
      "companyId": "co:lovable",
      "expected": true,
      "reason": "A named customer's layoffs warrant a spending question, without assuming a revenue loss.",
      "company": "Lovable",
      "eventDate": "2026-09-16",
      "eventType": "layoffs",
      "sourceUrl": "https://www.reuters.com/world/india/adidas-cuts-jobs-india-technology-team-2026-09-16/",
      "sourceQuote": "said it has reduced a number of roles in its technology team in India as part of efforts to simplify operations",
      "found": true,
      "outcome": "matched",
      "explanation": "Adidas cut its staff. Adidas is a customer of Lovable; its spend with Lovable may change either way.",
      "path": [
        {
          "id": "ed:customer_of:adidas:lovable:47f4b859",
          "type": "customer_of",
          "quote": "Inside established companies like Adidas, NVIDIA, and Deutsche Telekom, teams are using Lovable to create software around critical workflows, replace tools that no longer serve",
          "sourceUrl": "https://lovable.dev/blog/series-c",
          "date": "2026-08-12"
        }
      ]
    },
    {
      "id": "customer-guidance",
      "eventId": "ev:2026-07-31-telus-guidance-cut",
      "companyId": "co:tailscale",
      "expected": true,
      "reason": "A customer lowered guidance; spending implications remain unproven.",
      "company": "Tailscale",
      "eventDate": "2026-07-31",
      "eventType": "guidance_cut",
      "sourceUrl": "https://www.prnewswire.com/news-releases/telus-reports-second-quarter-2026-financial-and-operational-results-and-resets-quarterly-dividend-to-support-deleveraging-and-fuel-long-term-growth-824663865.html",
      "sourceQuote": "Full-year consolidated service revenue guidance revised to a range of flat to negative 2 per cent; consolidated Adjusted EBITDA is now expected to be in",
      "found": true,
      "outcome": "matched",
      "explanation": "TELUS lowered its outlook. TELUS is a customer of Tailscale, so spending on vendors there may come under review.",
      "path": [
        {
          "id": "ed:customer_of:telus:tailscale:c30dea9c",
          "type": "customer_of",
          "quote": "Companies like Instacart, SAP, Telus, Motorola, and Duolingo and thousands of others use Tailscale to make their hybrid, remote, and cloud networks sane again.",
          "sourceUrl": "https://tailscale.com/blog/series-c",
          "date": "2025-04-08"
        }
      ]
    },
    {
      "id": "later-customer-evidence",
      "eventId": "ev:2026-07-28-mercedes-outlook-cut",
      "companyId": "co:cognition",
      "expected": true,
      "reason": "A customer outlook change merits review, but the available customer source postdates the event.",
      "company": "Cognition",
      "eventDate": "2026-07-28",
      "eventType": "guidance_cut",
      "sourceUrl": "https://media.mercedes-benz.com/en/article/ea3ffd54-b273-4596-b2f5-ab968581ceec",
      "sourceQuote": "same time, in light of the continued challenging market environment in China, overall Mercedes-Benz Cars unit sales are now expected to come in slightly below",
      "found": false,
      "outcome": "missed",
      "explanation": "No customer link between Cognition and Mercedes-Benz Group was valid on 2026-07-28.",
      "path": []
    },
    {
      "id": "rival-acquisition",
      "eventId": "ev:2025-12-19-cursor-graphite",
      "companyId": "co:coderabbit",
      "expected": true,
      "reason": "A documented code review rival agreed to be acquired.",
      "company": "CodeRabbit",
      "eventDate": "2025-12-19",
      "eventType": "acquisition",
      "sourceUrl": "https://cursor.com/blog/graphite",
      "sourceQuote": "We are excited to announce that Graphite has entered into a definitive agreement to be acquired by Cursor.",
      "found": true,
      "outcome": "matched",
      "explanation": "Cursor agreed to buy code review startup Graphite (2025-12-19), and Graphite competes with CodeRabbit, so a competitor of CodeRabbit is set to be owned by Cursor.",
      "path": [
        {
          "id": "ed:competitor_of:coderabbit:graphite:73dbffec",
          "type": "competitor_of",
          "quote": "the AI assists in reviewing developer pull requests, focusing on correctness, security, and compliance. Examples include solutions from Graphite and CodeRabbit.",
          "sourceUrl": "https://a16z.com/the-trillion-dollar-ai-software-development-stack/",
          "date": "2025-10-09"
        }
      ]
    },
    {
      "id": "distribution-opportunity",
      "eventId": "ev:2026-10-06-codex-cloud-tailscale",
      "companyId": "co:tailscale",
      "expected": true,
      "reason": "The source explicitly names Tailscale as a supported VPN option; paid adoption is unknown.",
      "company": "Tailscale",
      "eventDate": "2026-10-06",
      "eventType": "other",
      "sourceUrl": "https://tailscale.com/blog/codex-cloud-tailscale",
      "sourceQuote": "We didn’t work with OpenAI on this, but Codex Cloud launched with support for Tailscale as a VPN provider (the only one, for now).",
      "found": true,
      "outcome": "matched",
      "explanation": "The event or its checked quote directly names the holding. This is a mention, not proof of impact.",
      "path": []
    },
    {
      "id": "enterprise-opportunity",
      "eventId": "ev:2026-09-28-lovable-microsoft",
      "companyId": "co:lovable",
      "expected": true,
      "reason": "The source names Lovable's enterprise deployment option; customer conversion is unknown.",
      "company": "Lovable",
      "eventDate": "2026-09-28",
      "eventType": "other",
      "sourceUrl": "https://lovable.dev/blog/microsoft-partnership",
      "sourceQuote": "Lovable packages the app with Microsoft's Copilot Managed Runtime SDK and deploys it into your Microsoft Entra tenant.",
      "found": true,
      "outcome": "matched",
      "explanation": "The event or its checked quote directly names the holding. This is a mention, not proof of impact.",
      "path": []
    },
    {
      "id": "unrelated-review-vendor",
      "eventId": "ev:2026-04-14-cloudflare-mesh",
      "companyId": "co:coderabbit",
      "expected": false,
      "reason": "A networking launch has no supported relevance to this code review holding.",
      "company": "CodeRabbit",
      "eventDate": "2026-04-14",
      "eventType": "platform_launch",
      "sourceUrl": "https://blog.cloudflare.com/mesh/",
      "sourceQuote": "Today, we're introducing Cloudflare Mesh to connect your private networks together and provide secure access for your agents.",
      "found": false,
      "outcome": "correct_negative",
      "explanation": "No customer, competitor or partner link between CodeRabbit and Cloudflare was valid on 2026-04-14.",
      "path": []
    },
    {
      "id": "no-sector-shortcut",
      "eventId": "ev:2026-09-28-lovable-microsoft",
      "companyId": "co:vercel",
      "expected": false,
      "reason": "A same-sector association alone does not establish an applicable relationship rule.",
      "company": "Vercel",
      "eventDate": "2026-09-28",
      "eventType": "other",
      "sourceUrl": "https://lovable.dev/blog/microsoft-partnership",
      "sourceQuote": "Lovable packages the app with Microsoft's Copilot Managed Runtime SDK and deploys it into your Microsoft Entra tenant.",
      "found": false,
      "outcome": "correct_negative",
      "explanation": "No rule covers this kind of event yet, so no links were checked.",
      "path": []
    },
    {
      "id": "direct-funding",
      "eventId": "ev:2026-09-08-cognition-series-e",
      "companyId": "co:cognition",
      "expected": true,
      "reason": "The holding raised financing and is the event's actor.",
      "company": "Cognition",
      "eventDate": "2026-09-08",
      "eventType": "funding",
      "sourceUrl": "https://cognition.com/blog/series-e",
      "sourceQuote": "Since our last round in May, Cognition’s run-rate revenue has grown from $492M to almost $900M.",
      "found": true,
      "outcome": "matched",
      "explanation": "The event or its checked quote directly names the holding. This is a mention, not proof of impact.",
      "path": []
    },
    {
      "id": "indirect-funding",
      "eventId": "ev:2026-09-08-cognition-series-e",
      "companyId": "co:coderabbit",
      "expected": true,
      "reason": "A documented rival raised financing.",
      "company": "CodeRabbit",
      "eventDate": "2026-09-08",
      "eventType": "funding",
      "sourceUrl": "https://cognition.com/blog/series-e",
      "sourceQuote": "Since our last round in May, Cognition’s run-rate revenue has grown from $492M to almost $900M.",
      "found": true,
      "outcome": "matched",
      "explanation": "Cognition raised over $2B at a $48B valuation (2026-09-08), and Cognition competes with CodeRabbit, so a competitor of CodeRabbit has new capital.",
      "path": [
        {
          "id": "ed:competitor_of:cognition:coderabbit:a8662f50",
          "type": "competitor_of",
          "quote": "Augment, now Cognition, and even Linear. Of course, there's also the \"White Claws\" of code review: pure-play code review agents like Greptile (that's us!), CodeRabbit,",
          "sourceUrl": "https://www.greptile.com/blog/ai-code-review-bubble",
          "date": "2026-01-24"
        }
      ]
    },
    {
      "id": "rival-builder-launch",
      "eventId": "ev:2026-03-19-google-ai-studio-firebase",
      "companyId": "co:lovable",
      "expected": true,
      "reason": "A documented rival launched in the app-builder category.",
      "company": "Lovable",
      "eventDate": "2026-03-19",
      "eventType": "platform_launch",
      "sourceUrl": "https://firebase.blog/posts/2026/03/announcing-ai-studio-integration/",
      "sourceQuote": "Today, we’re announcing that Firebase is now integrated with Google AI Studio, accelerating your path from prompt to production so you can turn your vibe-coded",
      "found": true,
      "outcome": "matched",
      "explanation": "Google moved app building into AI Studio, ended Firebase Studio (2026-03-19), and Google competes with Lovable, so a competitor of Lovable has launched a product; overlap and customer impact need review.",
      "path": [
        {
          "id": "ed:competitor_of:lovable:google:671566ca",
          "type": "competitor_of",
          "quote": "Firebase Studio and Lovable both turn natural language prompts into working applications, but Firebase Studio is no longer available to new users.",
          "sourceUrl": "https://lovable.dev/guides/firebase-studio-vs-lovable",
          "date": "2026-03-10"
        }
      ]
    },
    {
      "id": "category-negative",
      "eventId": "ev:2026-03-19-google-ai-studio-firebase",
      "companyId": "co:tailscale",
      "expected": false,
      "reason": "An app-builder launch has no supported connection to the networking holding.",
      "company": "Tailscale",
      "eventDate": "2026-03-19",
      "eventType": "platform_launch",
      "sourceUrl": "https://firebase.blog/posts/2026/03/announcing-ai-studio-integration/",
      "sourceQuote": "Today, we’re announcing that Firebase is now integrated with Google AI Studio, accelerating your path from prompt to production so you can turn your vibe-coded",
      "found": false,
      "outcome": "correct_negative",
      "explanation": "No customer, competitor or partner link between Tailscale and Google was valid on 2026-03-19.",
      "path": []
    },
    {
      "id": "security-coverage-gap",
      "eventId": "ev:2026-09-30-tanstack-start-cve",
      "companyId": "co:lovable",
      "expected": true,
      "reason": "A security advisory about a documented integration merits dependency review; the initial stored event used an unsupported event type and an insufficient incident quote.",
      "company": "Lovable",
      "eventDate": "2026-09-30",
      "eventType": "security_incident",
      "sourceUrl": "https://tanstack.com/blog/tanstack-start-security-update-cve-2026-102989",
      "sourceQuote": "We've released a fix for CVE-2026-102989, a critical reflected cross-site scripting (XSS) vulnerability in TanStack Start's server-function response handling.",
      "found": true,
      "outcome": "matched",
      "explanation": "TanStack patched a critical Start flaw that Lovable found (2026-09-30), and TanStack is a partner of Lovable, so Lovable should check its own dependencies and exposure; this does not establish that it was affected.",
      "path": [
        {
          "id": "ed:partner_of:lovable:tanstack:a59624b3",
          "type": "partner_of",
          "quote": "Starting May 13, new projects are Server-Side Rendered (SSR) and powered by TanStack Start, a modern React framework for building fast, full-stack apps.",
          "sourceUrl": "https://lovable.dev/blog/building-apps-using-tanstack-start",
          "date": "2026-06-01"
        }
      ]
    }
  ]
}
