Skip to content
GitHubVisionAugust 7, 2020

Required Comments

On GitHub, a reviewer blocks a code change by "requesting changes", which makes a person the blocker instead of the work. This vision lets any comment be marked required, so concrete tasks block merging, and nothing important disappears when the code changes underneath it.

0:00 / 24:29

The limits of review states

Summary

On GitHub, a pull request is a proposed code change that teammates review before it merges. The current review model asks reviewers to make too many decisions about containers (single comment or batch, comment or approve or request changes) while making the importance of the feedback itself hard to see.

  • Let requirements block merge, not people. A reviewer’s top-level state becomes approving or neutral. Any individual comment can be marked required, and an unresolved required comment is what makes the pull request unmergeable.
  • Turn review feedback into a to-do list. Authors get one consolidated view of the required work, with links back to each comment and its code context. Optional comments can be acknowledged and resolved without ceremony.
  • Confirm the important work. Resolving a required comment becomes a request back to its reviewer, who can confirm it or keep it open. Admins can still override when necessary.
  • Give reviewers a complete memory. A personal comments view collects resolved, unresolved, and outdated feedback so a reviewer can revisit everything they asked for instead of hunting through the timeline.
  • Remove the social weight from “request changes.” The interface says what must happen rather than which person is blocking the pull request, encouraging specific, actionable feedback over vague top-level reviews.
  • Ship the model in phases. Start with a required checkbox and a merge check, add the native author task list, streamline every comment into the same threadable and resolvable object, then add the full reviewer workflow.