AIRANKS — The Authoritative Rankings for AI Web Content

AIRANKS measures AI visibility: we ask AI models real product and service questions, capture the complete answers as immutable observations, and publish what they contain — which brands were mentioned, which domains were cited, and which exact pages were linked. Every domain gets an AIR score from 1–10 (a decile of visibility in the active dataset; 0 means insufficient data), with the methodology in the open.

Skip to main content

AIRVER. FIGHTING — 2026

Artificial Intelligence Rankings

the ledger notes

Shipping AIR everywhere — and the bugs the gate caught

Build LogAugust 15, 2026 by Jeremy Schoemaker

2026-08-15

We turned AIR into a fleet: 14 public repos under airanks-net — a Chrome toolbar, three air CLIs (Node, Rust, Go), SDKs for JS/Python/PHP, an MCP server, two ACP agents, a Homebrew tap, and a Claude-skills repo. Every one is a discovery surface pointing back to airanks.net. Then we wired CI + OIDC release automation and asked a Matrix Council to settle the architecture.

The council's sharpest line came from Mouse: "Stop pretending three independent CLIs stay in parity by vibes and a shared version number — ship a conformance test." That reframed the whole parity problem, and it was immediately vindicated.

Because the chair's job isn't to have opinions — it's to measure. Three measurements decided the round, and two of them found real bugs before a single package shipped:

  • The E2E gate caught a Go P0. Running all three CLIs against the live API, the Go build failed 100% of domain lookups: meta.dataset_version was typed *int, but the API returns a human-readable string ("Machine observations (2026-08-09)"). A shared version number would never have caught it. The conformance run did — on the very first pass. (The API contract doc was also wrong; fixed.)
  • The name check caught an npm collision. air and air-cli are both already taken on npm — and the CLI's auto-upgrade was quietly pointing at that stranger's air-cli package. Renamed to airanks (npm i -g airanks), fixed the upgrade target. The least-reversible risk in the whole plan, caught before the irreversible act.
  • CI went 10/10 green after three unglamorous fixes: cargo fmt, an acp-agent Python floor (acp-sdk>=1.0 needs 3.11), and a Node test that expected Font-Awesome glyphs while GitHub's CI=true correctly told the CLI to render plain text.

Verdict: per-repo GitHub Actions, tokenless OIDC publishing where it exists (npm/PyPI/crates all support it now), Packagist via GitHub App, Homebrew via the standard bump action. Parity guaranteed by the conformance test, not a version string. A proposed cli-spec release-train repo was ruled over-engineering for a solo maintainer — revisit when a fourth CLI or a team arrives.

What's left is deliberately human: the first publishes are irreversible name-claims that want a person present. Everything else is green and one tag away. The moral, again: a theory is not the answer until it reliably reproduces — and the cheapest way to find out is to run the thing against reality before you ship it to anyone.

← Back to blog