{
  "apiVersion": "v1",
  "organization": {
    "id": "ionix",
    "name": "Ionix",
    "sector": "software",
    "aiVendor": false,
    "domain": "ionix.io",
    "passages": 6,
    "checked": 6,
    "url": "https://the-ai-record.com/organizations/ionix",
    "json": "https://the-ai-record.com/api/v1/organizations/ionix.json",
    "description": "Sells software that finds and manages a company's internet-facing assets and the security exposures on them.",
    "ownership": null,
    "ticker": null,
    "hq": null,
    "founded": null,
    "website": "https://ionix.io",
    "profileSource": "https://www.ionix.io/blog/we-built-an-ai-pr-reviewer/",
    "figures": [],
    "topics": [
      "failures-and-reversals",
      "autonomy-and-oversight",
      "ai-review-cost",
      "code-review",
      "ai-review-quality"
    ]
  },
  "people": [
    {
      "id": "arthur-vinberg",
      "name": "Arthur Vinberg",
      "role": "Head of DevOps & IT",
      "level": "leader",
      "levelMeaning": "A VP, director, head or manager at the organization.",
      "organization": "Ionix",
      "organizationId": "ionix",
      "passages": 6,
      "reported": 0,
      "url": "https://the-ai-record.com/people/arthur-vinberg",
      "json": "https://the-ai-record.com/api/v1/people/arthur-vinberg.json"
    }
  ],
  "passages": [
    {
      "id": "ionix-agent-silently-lost-tools-answers-anyway-2026",
      "text": "An agent that has silently lost its tools does not report that it lost its tools. It answers anyway, with the same fluency as before.",
      "context": "From the post's account of a sandbox failure in which the review agent could not run any commands.",
      "speaker": "Arthur Vinberg",
      "speakerId": "arthur-vinberg",
      "speakerUrl": "https://the-ai-record.com/people/arthur-vinberg",
      "speakerLevel": "leader",
      "role": "Head of DevOps & IT",
      "voice": "person",
      "organization": "Ionix",
      "organizationId": "ionix",
      "organizationUrl": "https://the-ai-record.com/organizations/ionix",
      "aiVendor": false,
      "work": {
        "title": "We built an AI PR reviewer. The hard part was teaching it to say nothing.",
        "type": "post",
        "date": "2026-08-13",
        "publisher": "Ionix blog",
        "locator": "Two failures that taught us more than the design did",
        "url": "https://www.ionix.io/blog/we-built-an-ai-pr-reviewer/"
      },
      "grade": "B",
      "gradeMeaning": "The organization's own post, paper or talk.",
      "verification": {
        "status": "verified",
        "meaning": "An independent second reader re-fetched the source and confirmed the wording.",
        "reviewedOn": "2026-11-08"
      },
      "topics": [
        "failures-and-reversals",
        "autonomy-and-oversight"
      ],
      "functions": [
        "engineering"
      ],
      "figures": [],
      "url": "https://the-ai-record.com/passages/ionix-agent-silently-lost-tools-answers-anyway-2026",
      "json": "https://the-ai-record.com/api/v1/passages/ionix-agent-silently-lost-tools-answers-anyway-2026.json"
    },
    {
      "id": "ionix-dropped-rovo-paying-more-than-results-2026",
      "text": "The first was cost. We were paying more for it than the results justified, and the obvious replacements wanted the same kind of money.",
      "context": "The post's author explains why Ionix dropped Rovo, an AI review tool, before building its own reviewer; “it” in the passage is Rovo.",
      "speaker": "Arthur Vinberg",
      "speakerId": "arthur-vinberg",
      "speakerUrl": "https://the-ai-record.com/people/arthur-vinberg",
      "speakerLevel": "leader",
      "role": "Head of DevOps & IT",
      "voice": "person",
      "organization": "Ionix",
      "organizationId": "ionix",
      "organizationUrl": "https://the-ai-record.com/organizations/ionix",
      "aiVendor": false,
      "work": {
        "title": "We built an AI PR reviewer. The hard part was teaching it to say nothing.",
        "type": "post",
        "date": "2026-08-13",
        "publisher": "Ionix blog",
        "locator": "Why we built it instead of buying it",
        "url": "https://www.ionix.io/blog/we-built-an-ai-pr-reviewer/"
      },
      "grade": "B",
      "gradeMeaning": "The organization's own post, paper or talk.",
      "verification": {
        "status": "verified",
        "meaning": "An independent second reader re-fetched the source and confirmed the wording.",
        "reviewedOn": "2026-11-08"
      },
      "topics": [
        "ai-review-cost",
        "code-review"
      ],
      "functions": [
        "engineering"
      ],
      "figures": [],
      "url": "https://the-ai-record.com/passages/ionix-dropped-rovo-paying-more-than-results-2026",
      "json": "https://the-ai-record.com/api/v1/passages/ionix-dropped-rovo-paying-more-than-results-2026.json"
    },
    {
      "id": "ionix-most-days-one-sentence-change-looks-fine-2026",
      "text": "Most days the entire output is one sentence saying the change looks fine, which is what we built it to do. On the days it leaves an inline comment, someone reads it.",
      "context": null,
      "speaker": "Arthur Vinberg",
      "speakerId": "arthur-vinberg",
      "speakerUrl": "https://the-ai-record.com/people/arthur-vinberg",
      "speakerLevel": "leader",
      "role": "Head of DevOps & IT",
      "voice": "person",
      "organization": "Ionix",
      "organizationId": "ionix",
      "organizationUrl": "https://the-ai-record.com/organizations/ionix",
      "aiVendor": false,
      "work": {
        "title": "We built an AI PR reviewer. The hard part was teaching it to say nothing.",
        "type": "post",
        "date": "2026-08-13",
        "publisher": "Ionix blog",
        "locator": "If you’re building one of these",
        "url": "https://www.ionix.io/blog/we-built-an-ai-pr-reviewer/"
      },
      "grade": "B",
      "gradeMeaning": "The organization's own post, paper or talk.",
      "verification": {
        "status": "verified",
        "meaning": "An independent second reader re-fetched the source and confirmed the wording.",
        "reviewedOn": "2026-11-08"
      },
      "topics": [
        "ai-review-quality",
        "code-review"
      ],
      "functions": [
        "engineering"
      ],
      "figures": [],
      "url": "https://the-ai-record.com/passages/ionix-most-days-one-sentence-change-looks-fine-2026",
      "json": "https://the-ai-record.com/api/v1/passages/ionix-most-days-one-sentence-change-looks-fine-2026.json"
    },
    {
      "id": "ionix-permission-find-nothing-zero-findings-clean-2026",
      "text": "The second is permission to find nothing. The prompt says outright that returning zero findings is the correct and expected outcome for a clean PR, and that findings must never be manufactured to look thorough.",
      "context": null,
      "speaker": "Arthur Vinberg",
      "speakerId": "arthur-vinberg",
      "speakerUrl": "https://the-ai-record.com/people/arthur-vinberg",
      "speakerLevel": "leader",
      "role": "Head of DevOps & IT",
      "voice": "person",
      "organization": "Ionix",
      "organizationId": "ionix",
      "organizationUrl": "https://the-ai-record.com/organizations/ionix",
      "aiVendor": false,
      "work": {
        "title": "We built an AI PR reviewer. The hard part was teaching it to say nothing.",
        "type": "post",
        "date": "2026-08-13",
        "publisher": "Ionix blog",
        "locator": "The noise budget",
        "url": "https://www.ionix.io/blog/we-built-an-ai-pr-reviewer/"
      },
      "grade": "B",
      "gradeMeaning": "The organization's own post, paper or talk.",
      "verification": {
        "status": "verified",
        "meaning": "An independent second reader re-fetched the source and confirmed the wording.",
        "reviewedOn": "2026-11-08"
      },
      "topics": [
        "ai-review-quality"
      ],
      "functions": [
        "engineering"
      ],
      "figures": [],
      "url": "https://the-ai-record.com/passages/ionix-permission-find-nothing-zero-findings-clean-2026",
      "json": "https://the-ai-record.com/api/v1/passages/ionix-permission-find-nothing-zero-findings-clean-2026.json"
    },
    {
      "id": "ionix-reviewer-different-stack-codex-azure-foundry-2026",
      "text": "So the reviewer is deliberately a different stack from our authoring tools: OpenAI’s Codex CLI, pointed at a model deployment we host on Azure AI Foundry.",
      "context": null,
      "speaker": "Arthur Vinberg",
      "speakerId": "arthur-vinberg",
      "speakerUrl": "https://the-ai-record.com/people/arthur-vinberg",
      "speakerLevel": "leader",
      "role": "Head of DevOps & IT",
      "voice": "person",
      "organization": "Ionix",
      "organizationId": "ionix",
      "organizationUrl": "https://the-ai-record.com/organizations/ionix",
      "aiVendor": false,
      "work": {
        "title": "We built an AI PR reviewer. The hard part was teaching it to say nothing.",
        "type": "post",
        "date": "2026-08-13",
        "publisher": "Ionix blog",
        "locator": "A reviewer that didn’t write the code",
        "url": "https://www.ionix.io/blog/we-built-an-ai-pr-reviewer/"
      },
      "grade": "B",
      "gradeMeaning": "The organization's own post, paper or talk.",
      "verification": {
        "status": "verified",
        "meaning": "An independent second reader re-fetched the source and confirmed the wording.",
        "reviewedOn": "2026-11-08"
      },
      "topics": [
        "code-review"
      ],
      "functions": [
        "engineering"
      ],
      "figures": [],
      "url": "https://the-ai-record.com/passages/ionix-reviewer-different-stack-codex-azure-foundry-2026",
      "json": "https://the-ai-record.com/api/v1/passages/ionix-reviewer-different-stack-codex-azure-foundry-2026.json"
    },
    {
      "id": "ionix-same-claude-session-review-missed-critical-bugs-2026",
      "text": "A lot of our code is now written with an AI assistant in the loop. The first thing we tried was the obvious thing: ask the same Claude session that wrote the change to review it. That does not work. It missed critical bugs, and it missed them confidently, because it had already reasoned its way to believing the code was correct, and re-reading its own work only confirmed the conclusion.",
      "context": null,
      "speaker": "Arthur Vinberg",
      "speakerId": "arthur-vinberg",
      "speakerUrl": "https://the-ai-record.com/people/arthur-vinberg",
      "speakerLevel": "leader",
      "role": "Head of DevOps & IT",
      "voice": "person",
      "organization": "Ionix",
      "organizationId": "ionix",
      "organizationUrl": "https://the-ai-record.com/organizations/ionix",
      "aiVendor": false,
      "work": {
        "title": "We built an AI PR reviewer. The hard part was teaching it to say nothing.",
        "type": "post",
        "date": "2026-08-13",
        "publisher": "Ionix blog",
        "locator": "A reviewer that didn’t write the code",
        "url": "https://www.ionix.io/blog/we-built-an-ai-pr-reviewer/"
      },
      "grade": "B",
      "gradeMeaning": "The organization's own post, paper or talk.",
      "verification": {
        "status": "verified",
        "meaning": "An independent second reader re-fetched the source and confirmed the wording.",
        "reviewedOn": "2026-11-08"
      },
      "topics": [
        "ai-review-quality",
        "code-review"
      ],
      "functions": [
        "engineering"
      ],
      "figures": [],
      "url": "https://the-ai-record.com/passages/ionix-same-claude-session-review-missed-critical-bugs-2026",
      "json": "https://the-ai-record.com/api/v1/passages/ionix-same-claude-session-review-missed-critical-bugs-2026.json"
    }
  ],
  "notice": [
    "Every passage is reproduced word for word from the cited source.",
    "Check the verification status: \"reported\" means not yet confirmed by an independent second reader.",
    "Organizations flagged aiVendor sell AI tools or services and have a reason to publish flattering numbers.",
    "An empty result means the archive holds nothing on it, not that nobody has said anything."
  ]
}