• A structured result format to refer to
{
  "assessment": {
    "closeConfidence": 86,
    "primaryReason": "fixed",
    "summary": "The reported crash was fixed and no longer reproduces on supported releases.",
    "evidence": [
      "PR #71234 merged in Next.js 15.1.4",
      "PR #70001 closed; superseded by merged PR #71234",
      "No longer reproduces on 16.3.0-canary.92"
    ],
    "references": [
      {
        "kind": "pull_request",
        "label": "Fix merged in 15.1.4",
        "url": "https://github.com/vercel/next.js/pull/71234"
      }
    ]
  }
}
  • The first closability agent reviews the issue. If the score is 80 or higher, a second agent looks for reasons why the issue should stay open. If it cannot find any, the issue is closed with a closing reason. They also allow the issue to be reopened within two weeks with a reason.
    • It might be good to apply this approach to code reviews and other tasks: first look for reasons to close, then look for reasons not to close - in other words, consider both sides before deciding.