I was working on a GitHub issue in one of my own repos today, and a question came to mind that I found interesting: In general, where should discussions take place in a GitHub repo, like design decisions and thoughts? Issues or PRs?

I asked my coding agent, and thought its answer was worth keeping:

Short answer: Issues for the what and why; PRs for the how.

A common convention:

  • Issues — problem framing, design decisions, architectural discussions, RFCs, feature requests, bug reports. Long-lived, discoverable, not tied to a specific code change. This is where “should we do X, and why” lives.
  • Pull requests — implementation review: discussions about the specific code, line-level feedback, trade-offs in this particular approach. Short-lived, tied to a diff.
  • Discussions (if enabled) — open-ended Q&A, ideas, announcements, community conversations that aren’t actionable issues.

Practical guidance:

  • Hash out design in an issue before opening a PR, especially for non-trivial work. The PR then references the issue (Closes #123) and focuses on reviewing the code, not relitigating the design.
  • For larger efforts, some projects use an RFC issue (or a docs/rfcs/ markdown PR) as the canonical design record.
  • Keep PR review comments scoped to the diff. If a fundamental design question surfaces mid-review, move it back to the issue.
  • Decisions worth preserving long-term should end up in the repo itself (ADRs, design docs in docs/), not just buried in issue threads.

Rule of thumb: if someone six months from now needs to understand why the code looks this way, they should find it in an issue or a doc — not by scrolling through PR review comments.

#76Apr 26, 2026
Next note
Renamed Hack to Mesh
Apr 27, 2026#77