Buildkite is Good to agents.
Discry independently scored how well an AI agent can discover and understand the Buildkite API from what’s public — not whether it’s usable. Below: every signal we checked, what’s costing the score, and what to change.
SCORED UNDER RUBRIC 1.2 · A full re-launch under Discry Score 2.5 — a new behavioral instrument, not comparable to these scores — is in progress.
Discovery
45% of score · 57/100Comprehension
55% of score · 93/100What we found
- An agent can reach Buildkite the way it's designed to be reached: Buildkite ships an official MCP server (managed remote + local, on the Docker MCP catalog, Smithery and Glama), a dedicated coding-agents skills repo, and a 'Getting started with coding agents' guide — very few APIs document agent onboarding this deliberately.
- Documentation is near-perfect for comprehension: every doc page is available as clean Markdown (append .md), a rich 107KB llms.txt indexes the whole corpus with per-section descriptions, headings nest cleanly, and endpoint pages lead with method/URL/purpose — an agent can parse it without loss.
- The single biggest gap is discovery-side: there is no official machine-readable OpenAPI/Swagger spec for the REST API, so an agent that wants a typed contract must scrape the HTML/Markdown reference or rely on unofficial community specs.
- Error recovery is genuinely agent-usable: the listing endpoint returns a 400 that literally tells you how to fix it ('narrow your query using filters such as branch or created_from'), 422s return a structured errors array, and the rate-limit docs specify exact backoff behavior.
- robots.txt places no restrictions on AI crawlers (GPTBot, ClaudeBot, CCBot, etc. all pass), and the API surface is discoverable — but llms-full.txt returns 403 and there is no .well-known/mcp.json, leaving two low-weight discovery signals unmet.
What to change
Prioritized by impact on discoverability. You (or your docs platform) deploy these — Discry never touches your API.
- 01Publish an official, versioned OpenAPI 3.x spec for the REST API at a stable URL (e.g. buildkite.com/docs/apis/rest-api/openapi.json) and link it from the API overview. This is the highest-impact discovery fix — it's the single largest rubric weight and currently scores zero.
- 02Serve a working llms-full.txt (or fix the 403 on the existing path). Buildkite already generates per-section llms.txt files, so a consolidated agent-optimized dump is a small step that closes a discovery gap.
- 03Trim or split the root llms.txt: at 107KB it exceeds the ~50KB/12K-token comfort zone for a single agent read. Keep the high-value API-focused index and rely on the per-section files for depth so llms.txt quality moves from partial to pass.
- 04Add per-endpoint code examples in at least one additional language (e.g. Python or JavaScript) alongside curl. Examples are highly realistic and copy-pasteable today, but curl-only limits polyglot agents.
- 05Ensure documentation pages (docs.buildkite.com / /docs paths) are explicitly enumerated in the sitemap index so crawlers that rely on sitemaps — not just llms.txt — can discover the full reference.
Execution coverage · INFORMATIONAL, UNSCORED
Whether an agent can actually complete a call and recover from errors is the deeper Audit layer — documented here, but not part of the Discry Score.
Execution characteristics are documented to a high standard: Bearer-token auth with scoped, revocable tokens; machine-parseable JSON error bodies with per-endpoint error tables (400/422 with actionable messages); a dedicated rate-limits page with RateLimit-* and RateLimit-User-* headers plus 429/Retry-After backoff guidance; and page/per_page pagination surfaced via the Link header. Idempotency keys are not documented (build creation is noted as asynchronous instead).