{
  "slug": "bk-build-compare-compares-final-attempts-across-builds-4e187d96760a",
  "title": "bk build compare compares final attempts across builds",
  "tools": [
    "bk"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-10-20T22:17:17.000Z",
  "announced_at": "2026-10-20T22:17:17.000Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "When debugging a pipeline, run `bk build compare` with the target selector and optionally `--pipeline` and `--baseline`; inspect JSON, YAML, or text for final-attempt changes and investigation links.",
    "examples": [
      "bk build compare 123 --pipeline my-pipeline --json",
      "bk build compare acme/my-pipeline/123 --baseline 120 --text",
      "bk build compare https://buildkite.com/acme/my-pipeline/builds/123 --yaml"
    ],
    "gotchas": [
      "Version: v3.64.2",
      "<build-number> (required): Target build number, org/pipeline/number, or Buildkite build URL.",
      "--pipeline: Pipeline slug or org/pipeline; inferred from configuration or repository if omitted.",
      "--baseline: Baseline build number in the same pipeline; otherwise an earlier passed build on the same branch. Explicit baseline must be a different positive number; it may be newer, failed, or on another branch.",
      "--json / --yaml / --text: Select JSON, YAML, or text output format.",
      "--output: Output format: json, yaml, or text.",
      "Prerequisite: Requires `read_builds`.",
      "Requires `read_builds`.",
      "JSON/YAML never prompts for pipeline selection; specify `--pipeline` when inference is ambiguous.",
      "`--baseline` must be a different positive build number in the same pipeline; it may be newer, failed, or on another branch, with cross-branch comparisons warning.",
      "Automatic baseline search considers at most five pages or 500 candidates and requires a lower-numbered, strictly earlier-created build on the exact target branch that is currently passed.",
      "Missing branch or creation time, or no eligible baseline, is an error; supply `--baseline`.",
      "Missing or denied builds, failed pages, or inventories exceeding ten pages or 1000 jobs per build fail with no partial output.",
      "Only final attempts (`retried=false`), including running attempts, are compared.",
      "Name-based fallback matches are heuristic; duplicate identities leave affected jobs unmatched; keys never match names.",
      "No logs are fetched, and comparison does not establish causality or retry safety."
    ]
  },
  "why_it_matters": "Compare job outcomes and timings between a target build and a baseline while debugging a Buildkite pipeline.",
  "before": "Manually inspect two builds to compare step outcomes, retry counts, and timings.",
  "sources": [
    "https://github.com/buildkite/cli/releases/tag/v3.64.2",
    "https://github.com/buildkite/cli/pull/1049",
    "https://buildkite.com/docs/platform/cli/reference/build"
  ],
  "rank": 0.99074,
  "judge": {
    "publish": true,
    "judge_model": "codex-cli/gpt-6-luna+typesafe/jev-1.13.0",
    "prompt_version": "extract-v7+enrich-v2+judge-v2x3+jev-publish-v1"
  },
  "review_state": "approved",
  "provenance": {
    "run_id": "daily-20261026-04",
    "verdict_id": "daily-20261026-04:daily-20261026-04-c6a48706f49c7374-5:gate",
    "evidence_hash": "9514c8805d925d463a66cf298230f5dfd0eaa11dd8da5d6a620f1a3220b0782b"
  },
  "review": {
    "draft_hash": "0edc9e7d32b6ae0b3c1aef0fea10652c22d39da6024e5ef8031f1e7cea6185ba",
    "reviewer": "publication-gate",
    "reviewed_at": "2026-10-20T22:17:17.000Z",
    "decision": "daily-20261026-04:gate",
    "reason": "3 of 3 judge runs approved with p_yes >= 0.9 (mean 0.99 >= 0.9; 2 needed) and Jev gave 0.82 (>= 0.6 needed)."
  }
}
