Skip to content

Process hygiene: PR-title 'closes #N' doesn't trigger auto-close — body-only #90

Description

@rubenvdlinde

Context

Multiple PRs that landed today specified (closes #N) in their title but referenced issues stayed open until manually closed during the 2026-05-19 issue-sweep:

  • procest#497 (feat(pdok): route PDOK lookups through openconnector (closes #404)) — #404 stayed open
  • procest#498 (fix(#323): clear 6 mechanical ESLint source errors) — #323 stayed open
  • softwarecatalog#232 (...closes #230 in body and title) — #230 still open (probable cause: closes keyword inside a parenthesised qualifier in body, parser-edge-case)
  • 33 of 33 feat/fix PRs sampled today had closingIssuesReferences = empty

GitHub's auto-close requires Closes #N / Fixes #N as a top-level token in the PR body (not title, not parenthesised), targeting the default branch.

Action

  • Document the requirement in CONTRIBUTING / PR template
  • Update the PR template to include a ## Closes section that prompts the keyword in the body
  • Consider a CI lint that warns when PR title says 'closes #N' but body lacks the keyword
  • (Optional) GraphQL sweep over last N days of merged PRs to manually close stragglers

Why this matters

Issues stay falsely open → assignees underestimate completed work → unreliable backlog metrics.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions