Skip to content

docs(pr-template): owner-qualify cross-repo closing keywords#411

Open
LukasWodka wants to merge 1 commit into
developfrom
docs/930-pr-template-cross-repo-closers
Open

docs(pr-template): owner-qualify cross-repo closing keywords#411
LukasWodka wants to merge 1 commit into
developfrom
docs/930-pr-template-cross-repo-closers

Conversation

@LukasWodka

@LukasWodka LukasWodka commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Summary

GitHub auto-closes an issue in another repository only when the PR body uses an owner-qualified closing keyword. A bare repo#N — or a plain #N aimed at another repo — creates a cross-reference and closes nothing. This template's own hint taught Ref tracebloc/other-repo#456, and Ref is not a closing keyword at all, so the template was part of the problem rather than the fix.

Two lines change in the template: the Related hint now shows the qualified form as the visible example, and one checklist item turns it into a gate.

Plus one line in CONTRIBUTING.md, which was actively teaching the bug. It claimed a Closes #N body line means "GitHub auto-closes the issue on merge." That is wrong here in both directions: this repo's default branch is main while PRs land on develop, and GitHub fires closing keywords only on merges into the default branch — so Closes #N does not auto-close on merge to develop at all, cross-repo or not. The corrected bullet covers owner-qualification and that caveat, and stays one bullet. Evidence that this is real and not theoretical: #393 is an issue in this repo that stayed open behind a merged PR.

Related

Epic: tracebloc/backend#930 (developer feedback loop)

Evidence

Eight code-complete issues with merged PRs sat open for days-to-weeks:

Two epics consequently under-reported their progress by a wide margin. Someone had to notice and close all eight by hand.

Type of change

  • Docs

Test plan

Markdown-only; no Go code touched, so make ci is unaffected.

One thing worth stating explicitly, since it is the reason the example can be concrete rather than a placeholder: closing keywords inside an HTML comment are inert. This template has carried <!-- Closes #123 --> since it was written and has never once touched issue #123. So the new Fixes tracebloc/<repo>#456 example teaches the shape without ever firing.

Checklist

  • Tests added / updated and passing locally — n/a, docs only
  • go build ./..., go vet, and the Lint job's checks pass locally — n/a, no Go changes
  • Terminal output follows STYLE.md — n/a, no terminal output changed
  • No secrets / credentials in the diff
  • Cross-repo issues use Fixes tracebloc/<repo>#N — a bare repo#N closes nothing

Note

Low Risk
Markdown-only contributor guidance; no runtime, security, or build behavior changes.

Overview
Docs-only update to stop contributors from believing cross-repo or develop merges will auto-close issues.

The PR template replaces the misleading Ref tracebloc/other-repo#456 hint with guidance to use Fixes tracebloc/<repo>#N for cross-repo tickets and to verify closure when PRs merge to develop (not default main). A new checklist item enforces owner-qualified closing keywords.

CONTRIBUTING.md corrects the PR-body bullet: it no longer claims Closes #N always auto-closes on merge. It now documents owner-qualification for other repos and that closing keywords only fire on merges to the default branch, so develop merges may require manual issue closure.

Reviewed by Cursor Bugbot for commit 4d1f229. Bugbot is set up for automated code reviews on this repo. Configure here.

…oc/backend#930)

GitHub auto-closes an issue in another repository only when the PR body names
it owner-qualified. A bare `repo#N` merely cross-references and closes nothing
-- and the template's own hint taught `Ref tracebloc/other-repo#456`, which is
not a closing keyword at all.

Eight code-complete issues stayed open for days-to-weeks this way
(tracebloc/backend#1171-#1176, tracebloc/client#376, #393),
dragging two epics to 0% and 14% when the true figures were 67% and 24%.
Someone had to notice and close all eight by hand.

Also corrects CONTRIBUTING.md, which asserted that a `Closes #N` body line
auto-closes on merge. This repo's default branch is `main` while PRs land on
`develop`, and GitHub fires closing keywords only on merges into the default
branch -- so that claim was wrong in both directions and helped propagate the
bug. cli#393 is one of the eight.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@LukasWodka LukasWodka self-assigned this Jul 25, 2026
@LukasWodka

Copy link
Copy Markdown
Contributor Author

bugbot run

@LukasWodka

Copy link
Copy Markdown
Contributor Author

👋 Heads-up — Code review queue is at 34 / 30

Above the WIP limit. The team convention is to review existing PRs before opening new work.

Open PRs currently in Code review (oldest first):

Pull from review before opening new work. (This is a nudge from the kanban WIP check, not a block.)

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 4d1f229. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant