{
 "number": 34721,
 "input_hash": "eabc5ca6ced43310",
 "model": "openrouter/google/gemini-3.8-flash",
 "batch": false,
 "created": "2026-09-17T16:17:43+00:00",
 "provider": "Google",
 "stop_reason": "end_turn",
 "usage": {
  "input_tokens": 15214,
  "cache_creation_input_tokens": 0,
  "cache_read_input_tokens": 0,
  "output_tokens": 1884
 },
 "cost_usd": 0.0184755,
 "error": null,
 "result": {
  "display": {
   "goal": [
    "Install bash and fish shell completions automatically with cmake --install.",
    "Reduces packaging boilerplate by shipping completions alongside binary components."
   ],
   "reviewability": [
    "Ready. The recent push adopted reviewer-requested explicit target flags."
   ],
   "agreement": [
    "Broad support across multiple tested ACKs (caesrcd, BrandonOdiwuor, 151henry151).",
    "Resolved objection to if(EXISTS) file sniffing by matching HAS_MANPAGE (purpleKarrot, ryanofsky, hebasto).",
    "Minor architectural critique of install helper macros left open without blocker (purpleKarrot)."
   ],
   "categories": [
    {
     "name": "build",
     "why": [
      "P3 because it adds a welcome convenience for downstream packagers and end-user shell environments.",
      "It carries no risk to build integrity or supported platforms, and unblocks no critical projects."
     ]
    }
   ]
  },
  "summary": "This PR adds CMake installation rules for bash and fish shell completions located in contrib/completions/. It introduces INSTALL_BASH_COMPLETIONS and INSTALL_FISH_COMPLETIONS options and associates completions directly with executable target components using explicit target flags.",
  "problem": "Downstream packagers and users installing Bitcoin Core from source have to manually find and copy shell completion scripts into system vendor directories. Installing binaries by component or prefix omits completion scripts unless manually scripted.",
  "discussion": {
   "open_concerns": [
    "purpleKarrot expressed a general preference to eliminate convenience wrappers like install_binary_component in favor of inlining declarative install rules, but hebasto supported keeping the wrapper."
   ],
   "resolved_concerns": [
    "purpleKarrot, ryanofsky, hebasto, and 151henry151 flagged that checking file existence with if(EXISTS) at configure time is fragile; resolved by switching to explicit HAS_BASH_COMPLETION and HAS_FISH_COMPLETION target flags.",
    "luke-jr requested splitting the toggle per shell rather than a single monolithic flag; resolved by adding separate options for bash and fish."
   ],
   "author_status": "active"
  },
  "reviewability": {
   "state": "Ready",
   "label": "Ready",
   "reason": "The author addressed reviewer feedback by replacing configure-time file checks with explicit flags, and recent testing confirms clean operation."
  },
  "agreement": {
   "state": "Strong",
   "summary": "Strong consensus on installing shell completions; file-checking objections resolved in latest push.",
   "reason": "Multiple reviewers support installing shell completions via CMake. The only blocking technical feedback concerned CMake file-detection hygiene, which the author resolved by adopting explicit target parameters.",
   "evidence": [
    "Concept ACKs and Tested ACKs from BrandonOdiwuor, caesrcd, 151henry151, w0xlt, hebasto, and ryanofsky.",
    "purpleKarrot and ryanofsky objected to if(EXISTS) sniffing; author replaced it with explicit keywords.",
    "fanquake questioned whether completion scripts would be maintained; 151henry151 pointed out scripts generate options dynamically from help text rather than hardcoded tables."
   ]
  },
  "dependencies": {
   "depends_on": [],
   "enables": []
  },
  "categories": [
   {
    "name": "build",
    "member": true,
    "evidence": "Modifies CMakeLists.txt and cmake/module/InstallBinaryComponent.cmake to install shell completions.",
    "band": "P3",
    "reason_tag": "new feature",
    "score": 0.35,
    "factors": {
     "security_stability": 0,
     "bug_severity": 0,
     "performance": 0,
     "user_value": 2,
     "leverage": 0
    },
    "rationale": "P3 because this is a worthwhile usability improvement for Linux packagers and command-line users that requires minimal maintenance. It does not affect release integrity, reproducible builds, or platform support, but automates what was previously a manual copy step."
   }
  ],
  "confidence": "high",
  "uncertainties": [],
  "needs": [],
  "card": "This PR updates the CMake build system to install bash and fish shell completions when running cmake --install, tying them to specific binary components using explicit target flags. It addresses issue #34714 to eliminate the need for downstream packagers to copy shell completions manually. The PR is ready for review after a push that resolved reviewer concerns about dynamic file detection. It enjoys multiple tested ACKs with no blocking objections."
 },
 "raw_text": null
}